home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-13 / unity331.zip / UNITY.DOC < prev    next >
Text File  |  1991-09-26  |  167KB  |  5,408 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.                        Unity Programmer's Editor Version 3.3.1
  23.  
  24.  
  25.                                 Copyright (c)1990,91
  26.  
  27.  
  28.                                Ross Neilson Wentworth
  29.  
  30.  
  31.                                  All Rights Reserved
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.                                      Chapter One
  42.  
  43.                         Registration and License Information
  44.  
  45.  
  46.           Registration Information
  47.  
  48.  
  49.           Unity is a copyrighted program protected by both U.S. and
  50.           international copyright law.  If you obtained Unity from a
  51.           shareware disk vendor, an on-line computer service or bulletin
  52.           board, a friend or colleague, or another similar source, you have
  53.           an unregistered (trial) copy.  You are authorized to use this
  54.           copy without charge for a limited period of time under the terms
  55.           of the Unity license agreement.  After this time is up, you must
  56.           register and pay for Unity to continue using it.
  57.  
  58.           This method of distribution is known as shareware.  It allows you
  59.           to determine whether Unity meets your needs before you pay for
  60.           it.
  61.  
  62.           For price and ordering information please refer to the file
  63.           ORDER.FRM.
  64.  
  65.           Registering entitles you to:
  66.  
  67.               o  A disk with the latest version of Unity, registered to
  68.                  you.
  69.  
  70.               o  One copy of the printed Unity manual (extra).
  71.  
  72.               o  Technical support via electronic mail or (limited)
  73.                  telephone.
  74.  
  75.           Network, site, corporate, and bundling licenses are also
  76.           available; contact Serendipity Software for more information.
  77.  
  78.           Voice telephone support is limited because I must also work a
  79.           "regular" job.  My hours vary wildly so I am often available in
  80.           the middle of the day.
  81.  
  82.  
  83.           License Agreement
  84.  
  85.  
  86.           (1)  Copyright:  The Unity program and all other programs and
  87.           documentation distributed or shipped with it are Copyright Ross
  88.           Neilson Wentworth and Serendipity Software, 1990, 1991, and are
  89.           protected by U.S. and international copyright law.
  90.  
  91.  
  92.  
  93.  
  94.  
  95.           Chapter 1. Registration and License Information            Page 3
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.           (2)  Definitions:  Unity is distributed in two forms.  A
  103.           "registered" copy of Unity is a copy distributed on diskette,
  104.           purchased from Serendipity or from a dealer, and which includes a
  105.           serial number and the legend "registered" on the diskette label.
  106.           A "shareware" copy of Unity is a copy distributed on diskette or
  107.           via an electronic bulletin board, on-line service, or other
  108.           electronic means, obtained from a shareware disk vendor, or
  109.           obtained from another individual, and which displays the legend
  110.           "shareware" program copyright notice, and in most cases on the
  111.           diskette label as well (if applicable).
  112.  
  113.           (3)  Shareware Copies:  Shareware copies of Unity are distributed
  114.           to allow you to try the program before you pay for it.  They are
  115.           Copyright 1990, 1991, Ross Neilson Wentworth and Serendipity
  116.           Software, and do not constitute "free" or "public domain"
  117.           software. You may use a shareware copy of Unity at no charge for
  118.           a trial period of up to 30 days.  If you wish to continue using
  119.           Unity after that period, you must purchase a registered copy.  If
  120.           you choose not to purchase a registered copy, you must stop using
  121.           Unity, though you may keep copies and pass them along to others.
  122.  
  123.           (4)  Registered Copies:  Your registered copy of Unity may only
  124.           be used by one person at any time.  It may be installed on
  125.           multiple computers so long as there is no possibility of it being
  126.           used at one location while it's being used at another.
  127.  
  128.           (5)  Use of Unity on Networks or Multiple Systems:  You may
  129.           install your registered copy of Unity on a computer attached to a
  130.           network, provided there is no possibility that your copy will be
  131.           used by more users than it is licensed for.  A "user" is defined
  132.           as one keyboard which is connected to a computer on which Unity
  133.           is installed, regardless of whether or not the user of the
  134.           keyboard is aware of the installation or use of Unity in the
  135.           system.
  136.  
  137.           (6) Making Copies:  You may copy any version of Unity for normal
  138.           backup purposes, and you may give copies of the shareware version
  139.           to other individuals, which they may also use and copy subject to
  140.           the terms of this agreement.  If you copy the shareware version
  141.           of Unity for others, you must include all of the files
  142.           distributed with it, including this one.  You may not give copies
  143.           of the registered version or brand program to any other person
  144.           for any purpose, and you may not make any copies of the printed
  145.           and bound Unity manual without explicit written permission from
  146.           Serendipity Software.
  147.  
  148.           (7) Distribution Restrictions:  You may NOT distribute Unity
  149.           other than through individual copies of the shareware version
  150.           passed to friends and associates for their individual use.
  151.           Specifically, you may not place Unity or any part of the Unity
  152.           package in any user group or commercial library, or distribute it
  153.           with any other product or as an incentive to purchase any other
  154.           product, without express written permission from Serendipity
  155.           Software, and you may not distribute for a fee, or in any way
  156.  
  157.  
  158.  
  159.           Page 4            Chapter 1. Registration and License Information
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.           sell copies of Unity or any part of the Unity package.  If you
  167.           are a shareware disk vendor approved by the Association of
  168.           Shareware Professionals (ASP), you may place Unity in your
  169.           library without prior written permission, provided you notify
  170.           Serendipity Software within 15 days of doing so; and provided
  171.           your application has been fully approved in writing by the ASP,
  172.           and is not simply submitted or awaiting review.
  173.  
  174.           (8)  Use of Unity:  Unity is a powerful program.  While we have
  175.           attempted to build in reasonable safeguards, if you do not use
  176.           Unity properly you may destroy files or cause other damage to
  177.           your computer software and data. You assume full responsibility
  178.           for the selection and use of Unity to achieve your intended
  179.           results. As stated below, Serendipity Software limits its
  180.           warranty to replacement of a defective program diskette or
  181.           manual.
  182.  
  183.           (9) LIMITED WARRANTY:  Serendipity Software warrants to owners of
  184.           registered copies of Unity that the software will operate in
  185.           accordance with the description given in the documentation, and
  186.           that the diskette and manual will be free of physical defects
  187.           which interfere with normal use. For a period of 90 days from the
  188.           date of your purchase of Unity, Serendipity Software will, at its
  189.           sole option and subject to the restrictions above and below,
  190.           repair or replace any defective item(s), or refund the purchase
  191.           price of any diskette and/or manual and/or any other parts or
  192.           components of Unity found to be defective, if such defect is the
  193.           fault of Serendipity Software and not the result of misuse or
  194.           abuse.  Such a refund, repair, or replacement shall be your sole
  195.           remedy for any defects, program error(s), or documentation
  196.           error(s).  In no event shall Serendipity Software be responsible
  197.           for any other costs or damages whatsoever due to errors in usage
  198.           or your failure to read, understand, or follow instructions in
  199.           the documentation. SERENDIPITY SOFTWARE MAKES NO OTHER
  200.           WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE
  201.           WARRANTIES OF MERCHANTABILITY AND OF FITNESS FOR A PARTICULAR
  202.           PURPOSE. Serendipity Software's warranty is expressly limited to
  203.           the cost of replacement of any defective diskette or other part.
  204.  
  205.           (10)  Satisfaction Guarantee:  If you are dissatisfied with a
  206.           registered copy of Unity for any reason (whether or not you find
  207.           a software error or defect), you may return the entire package at
  208.           any time up to 90 days after purchase for a full refund of your
  209.           original registration fee.
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223.           Chapter 1. Registration and License Information            Page 5
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.           To register Unity print the file ORDER.FRM, fill it out and mail
  231.           it to the following address.  Be sure to include the proper
  232.           amount as indicated on the order form.
  233.  
  234.                          Ross Neilson Wentworth
  235.                          1422 Elkgrove Circle, Suite 3
  236.                          Venice, CA  90291
  237.                          (213)399-1244
  238.  
  239.           That's a VOICE number listed above.  I know that a few people out
  240.           there are not verifying phone numbers before calling with their
  241.           modem because I've been getting the occasional late night call
  242.           with nobody on the other end.  For BBS numbers please see page
  243.           77.
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  
  271.  
  272.  
  273.  
  274.  
  275.  
  276.  
  277.  
  278.  
  279.  
  280.  
  281.  
  282.  
  283.  
  284.  
  285.  
  286.  
  287.           Page 6            Chapter 1. Registration and License Information
  288.  
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295.  
  296.  
  297.                                      Chapter Two
  298.  
  299.                                       Overview
  300.  
  301.  
  302.           Unity Programmer's Editor is appropriately named.  It easily
  303.           unites all of your programming tools into an intuitive
  304.           programmer's environment.  Unity will automatically select the
  305.           correct tool for the job, such as an assembler for an ASM file, a
  306.           Pascal compiler for a PAS file, etc.
  307.  
  308.           Major features of Unity:
  309.  
  310.               o  Shell to most any command-line compiler and programming
  311.                  tools; preconfigured for Turbo Pascal, Turbo Assembler,
  312.                  Turbo Debugger, Turbo Profiler, and many others.
  313.               o  You don't compile blind!  You can watch what your compiler
  314.                  is doing, unlike Brief which redirects the output to a
  315.                  file but doesn't echo it to the screen.
  316.               o  Shell to DOS.
  317.               o  Execute "work" program.
  318.               o  Jump to line where errors occurred when compiling or
  319.                  assembling.
  320.               o  Display the compiler error message on the status line.
  321.               o  Multiple file editing (Unity supports up to six windows).
  322.               o  Edit the same file in multiple windows - changes are
  323.                  communicated across windows.
  324.               o  User extensible video adapter support.
  325.               o  Use as little memory as possible when shelling.  Expanded
  326.                  memory, extended memory (with an XMS driver), and disk
  327.                  swapping are supported.
  328.  
  329.           If the computer is equipped with sufficient expanded memory or
  330.           XMS extended memory, and enough is available, less than 10k of
  331.           conventional memory will be consumed by the editor while running
  332.           the compiler, debugger, or shelling to DOS.  In other words, the
  333.           amount of conventional memory wasted is so trivial that it can be
  334.           ignored.  The minimum EMS required is 128k.  The required amount
  335.           increases by the number and size of files being edited, 384k of
  336.           available EMS is recommended for an average size source file.
  337.  
  338.           When any shell is made (compile, debug, DOS, etc.) Unity first
  339.           attempts to swap itself into XMS (if enabled).  If that fails it
  340.           will try using EMS (if enabled).  At as last resort swapping will
  341.           be done to disk.  If that fails then the program will not be
  342.           swapped and less memory for the shell will be available or the
  343.           shell will not be possible.
  344.  
  345.  
  346.  
  347.  
  348.  
  349.  
  350.  
  351.           Chapter 2. Registration and License Information            Page 7
  352.  
  353.  
  354.  
  355.  
  356.  
  357.  
  358.  
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.  
  402.  
  403.  
  404.  
  405.  
  406.  
  407.  
  408.  
  409.  
  410.  
  411.  
  412.  
  413.  
  414.  
  415.           Page 8                                        Chapter 2. Overview
  416.  
  417.  
  418.  
  419.  
  420.  
  421.  
  422.  
  423.  
  424.  
  425.                                     Chapter Three
  426.  
  427.                                    Getting Started
  428.  
  429.  
  430.           You can start Unity in one of three ways:
  431.  
  432.              1.  You can enter UNITY at the DOS command line, and Unity
  433.                  will create the file NONAME for you to edit.  You can name
  434.                  it later on.
  435.  
  436.              2.  You can specify one to three file names at one time.  For
  437.                  example, UNITY ONE.PAS TWO.PAS THREE.PAS, which tells
  438.                  Unity to open three text windows, one for each file.  If a
  439.                  file doesn't exist, Unity will create it.
  440.  
  441.              3.  You can specify a file mask, e.g., UNITY *.PAS, which
  442.                  tells Unity to display a list of file names matching the
  443.                  mask '*.PAS'; you can then pick the file to edit from a
  444.                  sorted directory listing.
  445.  
  446.           You can optionally specify a macro to execute after opening each
  447.           file with the /# command line options, where # is a digit from
  448.           '1' to '9'.  For example to execute macro number 9 you would
  449.           specify UNITY /9 MYFILE.PAS.
  450.  
  451.           Automatic macro execution is useful when your default settings
  452.           are different from a desired setting under special circumstances.
  453.           Normally, programmers do not wish Word Wrap to be on, but if you
  454.           are working with a document you may wish to force it on.  If
  455.           macro 9 includes the Word Wrap On command you could set up a
  456.           batch file (or alias if you use PCED or 4DOS) that automatically
  457.           includes the '/9' command line options.
  458.  
  459.           A special command line option is supported to handle unusual
  460.           display behavior.  If Unity is not correctly detecting the type
  461.           of video system you have then you need to use the /Vn command
  462.           line options, where n is one of the following:
  463.  
  464.                0  -  Monochrome/Hercules
  465.                1  -  CGA
  466.                2  -  MCGA
  467.                3  -  EGA
  468.                4  -  VGA
  469.                5  -  PGC
  470.  
  471.           Using this option will force Unity to use the video mode
  472.           specified, regardless of what it thinks is connected.  CAUTION!
  473.           Specifying an incorrect value may cause Unity to become confused,
  474.           resulting in an illegible screen.
  475.  
  476.  
  477.  
  478.  
  479.           Chapter 3. Getting Started                                 Page 9
  480.  
  481.  
  482.  
  483.  
  484.  
  485.  
  486.           Registered copies of Unity include several video device drivers.
  487.           To use one rename it to UNITY.VID.  The following video device
  488.           drivers are current provided:
  489.  
  490.             MEGA.VID       Monochrome EGA
  491.             CEGA.VID       Color EGA
  492.             MVGA.VID       Monochrome VGA
  493.             CVGA.VID       Color VGA
  494.             MTRIDENT.VID   Monochrome Trident VGA
  495.             CTRIDENT.VID   Color Trident VGA
  496.  
  497.           The assembler source code is included so you can modify an
  498.           existing driver to add vendor specific video modes.
  499.  
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506.  
  507.  
  508.  
  509.  
  510.  
  511.  
  512.  
  513.  
  514.  
  515.  
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.  
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.  
  533.  
  534.  
  535.  
  536.  
  537.  
  538.  
  539.  
  540.  
  541.  
  542.  
  543.           Page 10                                Chapter 3. Getting Started
  544.  
  545.  
  546.  
  547.  
  548.  
  549.  
  550.  
  551.  
  552.  
  553.                                     Chapter Four
  554.  
  555.                                  The Editing Screen
  556.  
  557.  
  558.           The top line of the screen in Unity is always set aside as a
  559.           prompt line.  Messages and instructions are usually displayed
  560.           here.  When you press the first key of a command assigned to two
  561.           keystrokes, the keystroke is echoed at the left edge of the
  562.           prompt line.
  563.  
  564.           The top line of any editing window in Unity is always a status
  565.           line, providing the following information:
  566.  
  567.             >Z<         Indicates that the window has been zoomed to fill
  568.                         the screen.
  569.             FILENAME    The name and extension of the file being edited.
  570.                         Although Unity accepts complete path designations -
  571.                         for example "C:\DOCS\SAMPLE.DOC", the drive and
  572.                         path name will not be displayed on the status line.
  573.             xx%         Indicates the position of the cursor relative to
  574.                         the last character in the file.
  575.             Line n      Shows the number of the line containing the cursor,
  576.                         counting from the start of the file.
  577.             Col n       Shows the number of the column containing the
  578.                         cursor.
  579.             Insert      Indicates that Insert mode is in effect.  If Insert
  580.                         is off, "Over" (for overwrite) will be displayed
  581.                         instead.
  582.             Indent      Indicates that Autoindent mode is in effect.
  583.             Wrap        Indicates that wordwrap is in effect.
  584.             Justify     Indicates that right-justification is in effect.
  585.             Mar Rel     Indicates that the margin release command has been
  586.                         used to temporarily override the left and right
  587.                         margin while wordwrap is on.  This is displayed in
  588.                         the location usually reserved for "Wrap" and
  589.                         "Justify".
  590.             >R<         Indicates that macro recording is on.
  591.             >M<         Indicates that a macro is running.
  592.  
  593.           If the tab line has been turned on with the Toggle Tab Line
  594.           command, the second line in the text window will display the
  595.           locations of the current stops, as well as the left and right
  596.           margins.
  597.  
  598.  
  599.  
  600.  
  601.  
  602.  
  603.  
  604.  
  605.  
  606.  
  607.           Chapter 4. Getting Started                                Page 11
  608.  
  609.  
  610.  
  611.  
  612.  
  613.  
  614.  
  615.  
  616.  
  617.  
  618.  
  619.  
  620.  
  621.  
  622.  
  623.  
  624.  
  625.  
  626.  
  627.  
  628.  
  629.  
  630.  
  631.  
  632.  
  633.  
  634.  
  635.  
  636.  
  637.  
  638.  
  639.  
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
  646.  
  647.  
  648.  
  649.  
  650.  
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.  
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.  
  665.  
  666.  
  667.  
  668.  
  669.  
  670.  
  671.           Page 12                             Chapter 4. The Editing Screen
  672.  
  673.  
  674.  
  675.  
  676.  
  677.  
  678.  
  679.  
  680.  
  681.                                     Chapter Five
  682.  
  683.                                 Quick Reference Guide
  684.  
  685.  
  686.              ╔══════════════════════════╤══════════════╤══════════════╗
  687.              ║Keyboard Quick Reference  │Primary       │Alternate     ║
  688.              ╟──────────────────────────┼──────────────┼──────────────╢
  689.              ║Project                   │<F9>          │              ║
  690.              ║Execute                   │<AltE>        │              ║
  691.              ║Build all                 │              │              ║
  692.              ║Symbols                   │              │              ║
  693.              ║Tool 1                    │<AltC>        │              ║
  694.              ║Tool 2                    │<AltA>        │              ║
  695.              ║Tool 3                    │<AltD>        │              ║
  696.              ║Tool 4                    │<AltP>        │              ║
  697.              ║Tool 5                    │<AltT>        │              ║
  698.              ║Tool 6                    │<AltG>        │              ║
  699.              ║Tool 7                    │              │              ║
  700.              ║Tool 8                    │              │              ║
  701.              ║Tool 9                    │              │              ║
  702.              ║Tool 10                   │              │              ║
  703.              ╙──────────────────────────┴──────────────┴──────────────╜
  704.              ╓──────────────────────────┬──────────────┬──────────────╖
  705.              ║Set primary file name     │<AltF>        │              ║
  706.              ║Make current file primary │<AltH>        │              ║
  707.              ║Set autosave timer        │              │              ║
  708.              ║Next error file           │<CtrlF5>      │              ║
  709.              ║Next error                │<F5>          │              ║
  710.              ║Previous error            │<F4>          │              ║
  711.              ║Tool 1 options            │              │              ║
  712.              ║Tool 2 options            │              │              ║
  713.              ║Tool 3 options            │              │              ║
  714.              ║Tool 4 options            │              │              ║
  715.              ║Tool 5 options            │              │              ║
  716.              ║Tool 6 options            │              │              ║
  717.              ║Tool 7 options            │              │              ║
  718.              ║Tool 8 options            │              │              ║
  719.              ║Tool 9 options            │              │              ║
  720.              ║Tool 10 options           │              │              ║
  721.              ╙──────────────────────────┴──────────────┴──────────────╜
  722.  
  723.  
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730.  
  731.  
  732.  
  733.  
  734.  
  735.           Chapter 5. Quick Reference Guide                          Page 13
  736.  
  737.  
  738.  
  739.  
  740.  
  741.  
  742.              ╓──────────────────────────┬──────────────┬──────────────╖
  743.              ║Edit another file         │<F3>          │              ║
  744.              ║Abandon all files         │<AltQ>        │              ║
  745.              ║Read file into window     │<CtrlK><CtrlR>│              ║
  746.              ║Write block to file       │<CtrlK><CtrlW>│              ║
  747.              ║Save and continue edit    │<CtrlK><CtrlS>│<F2>          ║
  748.              ║Save file and close window│<CtrlK><CtrlX>│              ║
  749.              ║Close all but current file│<CtrlK><CtrlA>│              ║
  750.              ║Save/switch files         │<CtrlK><CtrlD>│              ║
  751.              ║Save and exit to DOS      │<AltX>        │              ║
  752.              ║Write to named file       │<CtrlK><CtrlN>│              ║
  753.              ╙──────────────────────────┴──────────────┴──────────────╜
  754.              ╓──────────────────────────┬──────────────┬──────────────╖
  755.              ║Character left            │<Lft>         │<CtrlS>       ║
  756.              ║Character right           │<Rgt>         │<CtrlD>       ║
  757.              ║Word left                 │<CtrlLft>     │<CtrlA>       ║
  758.              ║Word right                │<CtrlRgt>     │<CtrlF>       ║
  759.              ║Line up                   │<Up>          │<CtrlE>       ║
  760.              ║Line down                 │<Dn>          │<CtrlX>       ║
  761.              ║Scroll up                 │<CtrlW>       │              ║
  762.              ║Scroll down               │<CtrlZ>       │              ║
  763.              ║Page down                 │<PgDn>        │<CtrlC>       ║
  764.              ║Page up                   │<PgUp>        │<CtrlR>       ║
  765.              ║Top of window             │<CtrlPgUp>    │<CtrlQ><CtrlR>║
  766.              ║Bottom of window          │<CtrlPgDn>    │<CtrlQ><CtrlC>║
  767.              ║Cursor to left side       │<Home>        │<CtrlQ><CtrlS>║
  768.              ║Cursor to right side      │<End>         │<CtrlQ><CtrlD>║
  769.              ║Top of screen             │<CtrlHome>    │<CtrlQ><CtrlE>║
  770.              ║Bottom of screen          │<CtrlEnd>     │<CtrlQ><CtrlX>║
  771.              ╙──────────────────────────┴──────────────┴──────────────╜
  772.              ╓──────────────────────────┬──────────────┬──────────────╖
  773.              ║Go to line                │<CtrlJ><CtrlL>│              ║
  774.              ║Go to column              │<CtrlJ><CtrlC>│              ║
  775.              ║Go to window              │<CtrlJ><CtrlW>│              ║
  776.              ║Top of block              │<CtrlQ><CtrlB>│              ║
  777.              ║Bottom of block           │<CtrlQ><CtrlK>│              ║
  778.              ║Jump marker 0..9          │<CtrlQ>0 .. <CtrlQ>9         ║
  779.              ║Set marker 0..9           │<CtrlK>0 .. <CtrlK>9         ║
  780.              ║Previous cursor position  │<CtrlQ><CtrlP>│              ║
  781.              ║Up to equal indent        │<CtrlJ><CtrlB>│              ║
  782.              ║Down to equal indent      │<CtrlJ><CtrlE>│              ║
  783.              ║Next sentence             │<CtrlQ><CtrlZ>│              ║
  784.              ║Previous sentence         │<CtrlQ><CtrlW>│              ║
  785.              ║Set a marker via menu     │              │              ║
  786.              ║Jump to marker by menu    │              │              ║
  787.              ╙──────────────────────────┴──────────────┴──────────────╜
  788.  
  789.  
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796.  
  797.  
  798.  
  799.           Page 14                          Chapter 5. Quick Reference Guide
  800.  
  801.  
  802.  
  803.  
  804.  
  805.  
  806.              ╓──────────────────────────┬──────────────┬──────────────╖
  807.              ║New line                  │<CtrlM>       │              ║
  808.              ║Insert line               │<CtrlN>       │              ║
  809.              ║Insert control char       │<CtrlP>       │              ║
  810.              ║Delete current character  │<Del>         │<CtrlG>       ║
  811.              ║Delete left character     │<CtrlH>       │              ║
  812.              ║Delete right word         │<CtrlT>       │              ║
  813.              ║Delete left word          │<CtrlBks>     │              ║
  814.              ║Delete line right         │<CtrlQ><CtrlY>│              ║
  815.              ║Delete line               │<CtrlY>       │              ║
  816.              ║Delete Line (no undo)     │              │              ║
  817.              ╙──────────────────────────┴──────────────┴──────────────╜
  818.              ╓──────────────────────────┬──────────────┬──────────────╖
  819.              ║Find pattern              │<CtrlQ><CtrlF>│              ║
  820.              ║Find and replace          │<CtrlQ><CtrlA>│              ║
  821.              ║Search and apply macro    │<CtrlQ><CtrlM>│              ║
  822.              ║Find next                 │<CtrlL>       │              ║
  823.              ╙──────────────────────────┴──────────────┴──────────────╜
  824.              ╓──────────────────────────┬──────────────┬──────────────╖
  825.              ║Add window                │<CtrlO><CtrlA>│<ShiftF3>     ║
  826.              ║Close window              │<CtrlK><CtrlQ>│              ║
  827.              ║Next window               │<CtrlO><CtrlN>│<F6>          ║
  828.              ║Previous window           │<CtrlO><CtrlP>│<ShiftF6>     ║
  829.              ║Resize current window     │<CtrlO><CtrlS>│              ║
  830.              ║Toggle zoom mode          │<AltZ>        │              ║
  831.              ║Zoom the current window   │              │              ║
  832.              ╙──────────────────────────┴──────────────┴──────────────╜
  833.              ╓──────────────────────────┬──────────────┬──────────────╖
  834.              ║Begin block               │<CtrlK><CtrlB>│<F7>          ║
  835.              ║End block                 │<CtrlK><CtrlK>│<F8>          ║
  836.              ║Copy block                │<CtrlK><CtrlC>│              ║
  837.              ║Move block                │<CtrlK><CtrlV>│              ║
  838.              ║Delete block              │<CtrlK><CtrlY>│              ║
  839.              ║Toggle block display      │<CtrlK><CtrlH>│              ║
  840.              ║Mark current line         │<CtrlK><CtrlL>│              ║
  841.              ║Mark current word         │<CtrlK><CtrlT>│              ║
  842.              ║Shift block left          │<ShiftF7>     │<AltLft>      ║
  843.              ║Shift block right         │<ShiftF8>     │<AltRgt>      ║
  844.              ╙──────────────────────────┴──────────────┴──────────────╜
  845.              ╓──────────────────────────┬──────────────┬──────────────╖
  846.              ║Toggle macro record       │<CtrlJ><CtrlT>│              ║
  847.              ║Playback scrap            │<CtrlJ><CtrlI>│              ║
  848.              ║Playback scrap 1..9 times │<CtrlJ>1 .. <CtrlJ>9         ║
  849.              ║Playback macro 1..9       │<Alt1> .. <Alt9>             ║
  850.              ║Playback macro by menu    │              │              ║
  851.              ║Edit macro                │              │              ║
  852.              ║Load macros from disk     │              │              ║
  853.              ║Write macros to disk      │              │              ║
  854.              ╙──────────────────────────┴──────────────┴──────────────╜
  855.  
  856.  
  857.  
  858.  
  859.  
  860.  
  861.  
  862.  
  863.           Chapter 5. Quick Reference Guide                          Page 15
  864.  
  865.  
  866.  
  867.  
  868.  
  869.  
  870.              ╓──────────────────────────┬──────────────┬──────────────╖
  871.              ║Repeat macro              │<CtrlJ><CtrlM>│              ║
  872.              ║Abort macro end of block  │<CtrlJ><CtrlN>│              ║
  873.              ║Abort macro end of file   │<CtrlJ><CtrlQ>│              ║
  874.              ║Abort macro blank line    │<CtrlJ><CtrlO>│              ║
  875.              ║Force screen update       │<CtrlJ><CtrlU>│              ║
  876.              ╙──────────────────────────┴──────────────┴──────────────╜
  877.              ╓──────────────────────────┬──────────────┬──────────────╖
  878.              ║Toggle insert mode        │<CtrlV>       │<Ins>         ║
  879.              ║Force insert mode         │              │              ║
  880.              ║Force overtype mode       │              │              ║
  881.              ║Toggle autoindent mode    │<CtrlQ><CtrlI>│              ║
  882.              ║Force autoindent mode     │              │              ║
  883.              ║Toggle word wrap          │<CtrlO><CtrlW>│              ║
  884.              ║Force wordwrap on         │<CtrlQ><CtrlO>│              ║
  885.              ║Toggle right justify      │<CtrlO><CtrlJ>│              ║
  886.              ║Toggle compress at wrap   │              │              ║
  887.              ║Set left margin           │<CtrlO><CtrlL>│              ║
  888.              ║Set right margin          │<CtrlO><CtrlR>│              ║
  889.              ║Set temp margin           │<CtrlO><CtrlG>│              ║
  890.              ║Temp margin to cursor     │<CtrlO><CtrlH>│              ║
  891.              ║Margin release            │<CtrlO><CtrlX>│              ║
  892.              ║Center line               │<CtrlO><CtrlC>│              ║
  893.              ║Toggle case               │<CtrlO><CtrlO>│              ║
  894.              ║Lower case                │<CtrlO><CtrlV>│              ║
  895.              ║Upper case                │<CtrlO><CtrlU>│              ║
  896.              ║Reformat paragraph        │<CtrlB>       │              ║
  897.              ║Reformat block            │<CtrlK><CtrlF>│              ║
  898.              ╙──────────────────────────┴──────────────┴──────────────╜
  899.              ╓──────────────────────────┬──────────────┬──────────────╖
  900.              ║Toggle tab line           │<CtrlO><CtrlT>│              ║
  901.              ║Toggle marker display     │<CtrlK><CtrlM>│              ║
  902.              ║Toggle key help           │<CtrlJ><CtrlK>│              ║
  903.              ╙──────────────────────────┴──────────────┴──────────────╜
  904.              ╓──────────────────────────┬──────────────┬──────────────╖
  905.              ║Invoke DOS shell          │<CtrlF9>      │              ║
  906.              ║Log drive/path            │<CtrlJ><CtrlD>│              ║
  907.              ║Show system info          │<CtrlJ><CtrlV>│              ║
  908.              ║Show available memory     │<CtrlJ><CtrlR>│              ║
  909.              ║File directory            │              │              ║
  910.              ╙──────────────────────────┴──────────────┴──────────────╜
  911.  
  912.  
  913.  
  914.  
  915.  
  916.  
  917.  
  918.  
  919.  
  920.  
  921.  
  922.  
  923.  
  924.  
  925.  
  926.  
  927.           Page 16                          Chapter 5. Quick Reference Guide
  928.  
  929.  
  930.  
  931.  
  932.  
  933.  
  934.              ╓──────────────────────────┬──────────────┬──────────────╖
  935.              ║Set undo limit            │              │              ║
  936.              ║Set error buffer size     │              │              ║
  937.              ║Set support path          │              │              ║
  938.              ║Set default extension     │              │              ║
  939.              ║Set colors                │              │              ║
  940.              ║Toggle snow check         │              │              ║
  941.              ║Toggle block cursor       │              │              ║
  942.              ║Select video mode         │              │              ║
  943.              ║Select DESQview video mode│              │              ║
  944.              ║Toggle enhanced keyboard  │              │              ║
  945.              ║Toggle dual display       │              │              ║
  946.              ║Toggle tab expansion      │              │              ║
  947.              ║Toggle tab writing        │              │              ║
  948.              ║Toggle hi-bit strip       │              │              ║
  949.              ║Toggle initial zoom       │              │              ║
  950.              ║Toggle EMS usage          │              │              ║
  951.              ║Toggle XMS usage          │              │              ║
  952.              ║Set swap drive            │              │              ║
  953.              ║Save defaults             │              │              ║
  954.              ╙──────────────────────────┴──────────────┴──────────────╜
  955.              ╓──────────────────────────┬──────────────┬──────────────╖
  956.              ║Tab                       │<CtrlI>       │              ║
  957.              ║Backward tab              │<ShiftTab>    │              ║
  958.              ║Toggle fixed tabs         │<CtrlO><CtrlF>│              ║
  959.              ║Force fixed tabs          │<CtrlJ><CtrlG>│              ║
  960.              ║Set tab size              │              │              ║
  961.              ╙──────────────────────────┴──────────────┴──────────────╜
  962.              ╓──────────────────────────┬──────────────┬──────────────╖
  963.              ║Help menu                 │<F1>          │              ║
  964.              ║Show help summary         │<CtrlJ><CtrlH>│              ║
  965.              ║Status help               │              │              ║
  966.              ║Cursor help               │              │              ║
  967.              ║Quick movement help       │              │              ║
  968.              ║Delete help               │              │              ║
  969.              ║Find/Replace help         │              │              ║
  970.              ║File help                 │              │              ║
  971.              ║Window help               │              │              ║
  972.              ║Block help                │              │              ║
  973.              ║Text help                 │              │              ║
  974.              ║Tab help                  │              │              ║
  975.              ║Utility help              │              │              ║
  976.              ║Setting help              │              │              ║
  977.              ║Program help              │              │              ║
  978.              ║Macro help                │              │              ║
  979.              ║Function keys             │              │              ║
  980.              ╙──────────────────────────┴──────────────┴──────────────╜
  981.  
  982.  
  983.  
  984.  
  985.  
  986.  
  987.  
  988.  
  989.  
  990.  
  991.           Chapter 5. Quick Reference Guide                          Page 17
  992.  
  993.  
  994.  
  995.  
  996.  
  997.  
  998.              ╓──────────────────────────┬──────────────┬──────────────╖
  999.              ║Activate menus            │<F10>         │              ║
  1000.              ║Abort command (1 char)    │<CtrlU>       │              ║
  1001.              ║Undo last deletion        │<CtrlQ><CtrlU>│              ║
  1002.              ║Restore line              │<CtrlQ><CtrlL>│              ║
  1003.              ║Insert undo buffer        │<CtrlQ><CtrlV>│              ║
  1004.              ║Flush undo buffer         │<CtrlQ><CtrlJ>│              ║
  1005.              ╚══════════════════════════╧══════════════╧══════════════╝
  1006.  
  1007.           Commands that do not have a primary or secondary key sequence can
  1008.           only be accessed through the menu.  There are a few without key
  1009.           sequences which do not have a corresponding menu option and must
  1010.           be installed to a key sequence before they can be used.
  1011.  
  1012.           The above quick reference guide can be created using the
  1013.           installation program (UINST.EXE).  After making any keyboard
  1014.           changes you need you will be asked if you wish a quick-reference
  1015.           guide.  Answering Yes will result in a new quick reference with
  1016.           any changes you've made being created in the current directory.
  1017.  
  1018.  
  1019.  
  1020.  
  1021.  
  1022.  
  1023.  
  1024.  
  1025.  
  1026.  
  1027.  
  1028.  
  1029.  
  1030.  
  1031.  
  1032.  
  1033.  
  1034.  
  1035.  
  1036.  
  1037.  
  1038.  
  1039.  
  1040.  
  1041.  
  1042.  
  1043.  
  1044.  
  1045.  
  1046.  
  1047.  
  1048.  
  1049.  
  1050.  
  1051.  
  1052.  
  1053.  
  1054.  
  1055.           Page 18                          Chapter 5. Quick Reference Guide
  1056.  
  1057.  
  1058.  
  1059.  
  1060.  
  1061.  
  1062.  
  1063.  
  1064.  
  1065.                                      Chapter Six
  1066.  
  1067.                                Basic Movement Commands
  1068.  
  1069.  
  1070.           Character Left                                   <Lft> or <CtrlS>
  1071.             Moves the cursor one character to the left.  This command does
  1072.             not work across line breaks; when the cursor reaches column 1,
  1073.             it stops.
  1074.  
  1075.           Character Right                                  <Rgt> or <CtrlD>
  1076.             Moves the cursor one character to the right.  This command does
  1077.             not work across line breaks; when the cursor reaches the
  1078.             right-hand edge of the text window, the text starts scrolling
  1079.             horizontally until it reaches the extreme right edge of the
  1080.             line (column 999), where it stops.
  1081.  
  1082.           Word Left                                    <CtrlLft> or <CtrlA>
  1083.             Moves the cursor to the beginning of the word to the left.
  1084.             This command works across line breaks.
  1085.  
  1086.           Word Right                                   <CtrlRgt> or <CtrlF>
  1087.             Moves the cursor to the beginning of the word to the right.
  1088.             This command works across line breaks.
  1089.  
  1090.           Line Up                                           <Up> or <CtrlE>
  1091.             Moves the cursor to the line above.  If the cursor is on the
  1092.             top line of the window, the window scrolls down one line (if
  1093.             there's more text to scroll).
  1094.  
  1095.           Line Down                                         <Dn> or <CtrlX>
  1096.             Moves the cursor to the line below.  If the cursor is on the
  1097.             last line of the window, the window scrolls up one line (if
  1098.             there's more text to scroll).
  1099.  
  1100.           Scroll Up                                                 <CtrlW>
  1101.             Scrolls up toward the beginning of the file, one line at a
  1102.             time.  The cursor remains on its line until it reaches the
  1103.             bottom of the window.
  1104.  
  1105.           Scroll Down                                               <CtrlZ>
  1106.             Scrolls down toward the end of the file.  The cursor remains on
  1107.             its line until it reaches the top of the window.
  1108.  
  1109.           Page Down                                       <PgDn> or <CtrlC>
  1110.             Moves the cursor down one page with an overlap of one line.
  1111.  
  1112.           Page Up                                         <PgUp> or <CtrlR>
  1113.             Moves the cursor on page up with an overlap of one line.
  1114.  
  1115.  
  1116.  
  1117.  
  1118.  
  1119.           Chapter 6. Quick Reference Guide                          Page 19
  1120.  
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126.           Beginning of File                    <CtrlPgUp> or <CtrlQ><CtrlR>
  1127.             Moves the cursor to the first character in the file.
  1128.  
  1129.           End of File                          <CtrlPgDn> or <CtrlQ><CtrlC>
  1130.             Move the cursor to the last character in the file.
  1131.  
  1132.           Beginning of Line                        <Home> or <CtrlQ><CtrlS>
  1133.             Moves the cursor to column 1 of the current line.
  1134.  
  1135.           End of Line                               <End> or <CtrlQ><CtrlD>
  1136.             Moves the cursor to the end of the current line (the position
  1137.             following the last nonblank character on the line).  Trailing
  1138.             blanks are always removed from all line to preserve space.
  1139.  
  1140.           Top of Screen                        <CtrlHome> or <CtrlQ><CtrlE>
  1141.             Moves the cursor to the first line displayed in the active
  1142.             window.  The cursor remains in the same column.
  1143.  
  1144.           Bottom of Screen                      <CtrlEnd> or <CtrlQ><CtrlX>
  1145.             Moves the cursor to the last line displayed in the active
  1146.             window.  The cursor remains in the same column.
  1147.  
  1148.  
  1149.  
  1150.  
  1151.  
  1152.  
  1153.  
  1154.  
  1155.  
  1156.  
  1157.  
  1158.  
  1159.  
  1160.  
  1161.  
  1162.  
  1163.  
  1164.  
  1165.  
  1166.  
  1167.  
  1168.  
  1169.  
  1170.  
  1171.  
  1172.  
  1173.  
  1174.  
  1175.  
  1176.  
  1177.  
  1178.  
  1179.  
  1180.  
  1181.  
  1182.  
  1183.           Page 20                        Chapter 6. Basic Movement Commands
  1184.  
  1185.  
  1186.  
  1187.  
  1188.  
  1189.  
  1190.  
  1191.  
  1192.  
  1193.                                     Chapter Seven
  1194.  
  1195.                                  Markers And Jumping
  1196.  
  1197.  
  1198.           Go to Line                                         <CtrlJ><CtrlL>
  1199.             Prompts for a line number and moves the cursor to the specified
  1200.             line.  Any positive integer in the range 1 to 32,767 is valid.
  1201.             If the value is preceded by a plus (+) or minus (-) sign, the
  1202.             target line number will be calculated relative to the current
  1203.             line.  Line numbers are counted from the beginning of the file.
  1204.  
  1205.           Go to Column                                       <CtrlJ><CtrlC>
  1206.             Prompts for a column number and moves the cursor to the
  1207.             specified column in the current line.  Any positive integer in
  1208.             the range 1 to 999 is valid.  If the value is preceded by a
  1209.             plus (+) or minus (-) sign, the target column number will be
  1210.             calculated relative to the current column.
  1211.  
  1212.           Go to Window                                       <CtrlJ><CtrlW>
  1213.             If more than one window is open, a list of the open windows is
  1214.             displayed in a pop-up menu; after the selection is made, the
  1215.             cursor is moved to the indicated window.  If only one window is
  1216.             open, an error message is displayed.
  1217.  
  1218.           Top of Block                                       <CtrlQ><CtrlB>
  1219.             Moves the cursor to the position of the block-begin marker set
  1220.             with <CtrlK><CtrlB>.  The command works even if the block is
  1221.             hidden or the block-end marker is not set.
  1222.  
  1223.           Bottom of Block                                    <CtrlQ><CtrlK>
  1224.             Moves the cursor to the position of the block-end marker set
  1225.             with <CtrlK><CtrlK>.  The command works even if the block is
  1226.             hidden or the block-begin marker is not set.
  1227.  
  1228.           Jump to Marker 0..9                          <CtrlQ>0 .. <CtrlQ>9
  1229.             Moves the cursor to one of the ten text markers with the Set
  1230.             marker command.  <CtrlQ>0 jumps to marker 0, <CtrlQ>1 jumps to
  1231.             marker 1, and so on.  If the specified marker has not been set,
  1232.             the cursor is not moved.
  1233.  
  1234.           Set Marker 0..9                              <CtrlK>0 .. <CtrlK>9
  1235.             Sets one of the ten text markers at the current position of the
  1236.             cursor.  <CtrlK>0 sets marker 0, <CtrlK>1 sets marker 1, and so
  1237.             on.
  1238.  
  1239.           Previous Cursor Position                           <CtrlQ><CtrlP>
  1240.             Moves to the last cursor position.  This command is
  1241.             particularly useful to move back to the previous position after
  1242.             a Find or Find-and-Replace operation.
  1243.  
  1244.  
  1245.  
  1246.  
  1247.           Chapter 7. Basic Movement Commands                        Page 21
  1248.  
  1249.  
  1250.  
  1251.  
  1252.  
  1253.  
  1254.           Up To Equal Indent                                 <CtrlJ><CtrlB>
  1255.             Moves the cursor to the beginning of the previous line with the
  1256.             same indentation level as the current line.  For example, if
  1257.             the first nonblank character in the current line is at column
  1258.             20, the cursor is moved up to the next line that also begins at
  1259.             column 20.
  1260.  
  1261.           Down To Equal Indent                               <CtrlJ><CtrlE>
  1262.             Moves the cursor to the beginning of the next line with the
  1263.             same indentation level as the current line.
  1264.  
  1265.           Next Sentence                                      <CtrlQ><CtrlZ>
  1266.             Moves the cursor to the beginning of the next sentence.  A
  1267.             sentence is defined as a sequence of characters delimited by a
  1268.             period, semicolon, question mark, exclamation mark, or blank
  1269.             line.
  1270.  
  1271.           Previous Sentence                                  <CtrlQ><CrtlW>
  1272.             If the cursor is in the middle of a sentence, the cursor is
  1273.             moved to the beginning of the current sentence.  If the cursor
  1274.             is at the beginning of a sentence or between sentences (on a
  1275.             blank line, for example) the cursor is moved to the beginning
  1276.             of the previous sentence.
  1277.  
  1278.           Set Marker Via Menu
  1279.             Performs same function as the Set Marker command, but you are
  1280.             prompted for a marker number.
  1281.  
  1282.           Jump To Marker By Menu
  1283.             Performs the same function  as the Jump to Marker command, but
  1284.             you are prompted for a marker number.  A pop-up window is
  1285.             displayed, showing the marker number, the file it is in, and
  1286.             the number of the line containing the marker.  If a marker has
  1287.             not been set, "Not Set" is displayed instead.  You may select a
  1288.             marker either by pressing its number or by moving the selection
  1289.             bar to it and pressing <Enter>.
  1290.  
  1291.  
  1292.  
  1293.  
  1294.  
  1295.  
  1296.  
  1297.  
  1298.  
  1299.  
  1300.  
  1301.  
  1302.  
  1303.  
  1304.  
  1305.  
  1306.  
  1307.  
  1308.  
  1309.  
  1310.  
  1311.           Page 22                            Chapter 7. Markers And Jumping
  1312.  
  1313.  
  1314.  
  1315.  
  1316.  
  1317.  
  1318.  
  1319.  
  1320.  
  1321.                                     Chapter Eight
  1322.  
  1323.                                   Insert And Delete
  1324.  
  1325.  
  1326.           New Line                                       <Enter> or <CtrlM>
  1327.             In Insert mode, this command inserts a line break at the
  1328.             cursor's position.  If AutoIndent mode is in effect, the cursor
  1329.             moves to the next line and to the same column as the first
  1330.             nonblank character in the previous line; otherwise, it moves to
  1331.             column 1 of the new line.
  1332.  
  1333.             In Overwrite mode, this command moves the cursor to column 1 of
  1334.             the next line without inserting a new line, whether Autoindent
  1335.             mode is in effect or not.  A new line will be inserted if
  1336.             you're in Overwrite mode and the cursor is on the last line of
  1337.             the file.
  1338.  
  1339.           Insert Line                                               <CtrlN>
  1340.             Inserts a line break at the cursor's position.  The cursor does
  1341.             not move.
  1342.  
  1343.           Insert Control Character                                  <CtrlP>
  1344.             Allows control characters to be entered into the text.  For
  1345.             example, pressing <CtrlP> and then <CtrlB> would insert <CtrlB>
  1346.             into the text.  Control characters are always displayed as
  1347.             highlighted capital letters.
  1348.  
  1349.           Delete Current Character                         <Del> or <CtrlG>
  1350.             Deletes the character under the cursor and moves any characters
  1351.             to the right of the cursor one position to the left.  This
  1352.             command does not work across line breaks.
  1353.  
  1354.           Delete Character Left                      <Backspace> or <CtrlH>
  1355.             Moves the cursor one character to the left and deletes the
  1356.             character positioned there.  Any characters to the right of the
  1357.             cursor are moved one position to the left.  If the cursor is at
  1358.             column 1 at the time the command is given, the invisible end-
  1359.             of-line marker for the previous line is deleted instead and the
  1360.             two lines joined.
  1361.  
  1362.           Delete Word Right                                         <CtrlT>
  1363.             Deletes the word to the right of the cursor.  This command
  1364.             works across line breaks and thus may be used to remove line
  1365.             breaks.
  1366.  
  1367.           Delete Word Left                                       <CtrlBksp>
  1368.             Deletes the word to the left of the cursor.  This command works
  1369.             across line breaks and thus may be used to remove line breaks.
  1370.  
  1371.  
  1372.  
  1373.  
  1374.  
  1375.           Chapter 8. Markers And Jumping                            Page 23
  1376.  
  1377.  
  1378.  
  1379.  
  1380.  
  1381.  
  1382.           Delete to End of Line                              <CtrlQ><CtrlY>
  1383.             Deletes all the text from the position of the cursor to the end
  1384.             of the line.
  1385.  
  1386.           Delete Line                                               <CtrlY>
  1387.             Deletes the line containing the cursor and moves any lines
  1388.             below up one line.  The cursor moves to column 1 of the next
  1389.             line.
  1390.  
  1391.           Delete Line (no undo)                              <CtrlQ><CtrlT>
  1392.             Delete the line containing the cursor and moves any lines below
  1393.             up one line.  The cursor moves to column one.  The deleted line
  1394.             is NOT placed in the undo buffer.
  1395.  
  1396.  
  1397.  
  1398.  
  1399.  
  1400.  
  1401.  
  1402.  
  1403.  
  1404.  
  1405.  
  1406.  
  1407.  
  1408.  
  1409.  
  1410.  
  1411.  
  1412.  
  1413.  
  1414.  
  1415.  
  1416.  
  1417.  
  1418.  
  1419.  
  1420.  
  1421.  
  1422.  
  1423.  
  1424.  
  1425.  
  1426.  
  1427.  
  1428.  
  1429.  
  1430.  
  1431.  
  1432.  
  1433.  
  1434.  
  1435.  
  1436.  
  1437.  
  1438.  
  1439.           Page 24                              Chapter 8. Insert And Delete
  1440.  
  1441.  
  1442.  
  1443.  
  1444.  
  1445.  
  1446.  
  1447.  
  1448.  
  1449.                                     Chapter Nine
  1450.  
  1451.                                   Find And Replace
  1452.  
  1453.  
  1454.           Find                                               <CtrlQ><CtrlF>
  1455.             Lets you search for a string of up to 67 characters.  When you
  1456.             enter this command, you will be asked for a search string.  The
  1457.             last search string entered (if any) will be displayed.  You can
  1458.             select it again by pressing <Enter>, edit it, or enter a new
  1459.             search string.  <Esc> or <CtrlU> will cancel a search command,
  1460.             and <CtrlP> can be used to enter control characters.  For
  1461.             example, to find a period at the end of a line you would search
  1462.             for ".<CtrlM>", where <CtrlM> was entered by pressing <CtrlP>
  1463.             and <CtrlM>.
  1464.  
  1465.             After the search string is entered, you must specify your
  1466.             search options.  The options you used last are displayed.  You
  1467.             can enter new options (canceling the old ones), edit the
  1468.             current options, or select them again by pressing <Enter>.  The
  1469.             following options are available:
  1470.  
  1471.                B    Searches backwards from the current cursor position
  1472.                     toward the beginning of the file.
  1473.                G    Searches globally.  The entire file is scanned for the
  1474.                     search string, regardless of the current position of
  1475.                     the cursor.  The search starts at the beginning of the
  1476.                     file if searching forwards; at the end if searching
  1477.                     backwards.
  1478.                L    Limits searches to the currently marked block.
  1479.                n    Finds the nth occurrence of the string (overridden by
  1480.                     the L option).
  1481.                U    Ignores case; treats all alphabetic characters as if
  1482.                     they were upper-case.
  1483.                W    Searches for whole words only; skips patterns embedded
  1484.                     in other words.
  1485.  
  1486.             If the text contains a target matching the search string, the
  1487.             target is highlighted and the cursor is positioned just beyond
  1488.             it.
  1489.  
  1490.           Find-and-Replace                                   <CtrlQ><CtrlA>
  1491.             This operation works the same as the Find command except that
  1492.             you can replace the found string with any other string of up to
  1493.             67 characters.  After the entering the search string, you are
  1494.             asked to enter the replacement string.  The last replacement
  1495.             string entered, if any, will be displayed; you may accept it,
  1496.             edit it, or enter a new string.
  1497.  
  1498.  
  1499.  
  1500.  
  1501.  
  1502.  
  1503.           Chapter 9. Insert And Delete                              Page 25
  1504.  
  1505.  
  1506.  
  1507.  
  1508.  
  1509.  
  1510.             Finally, you are prompted for options.  The options you used
  1511.             last are displayed first.  You may enter new options (canceling
  1512.             the old ones), edit the current options, or select them by
  1513.             pressing <Enter>.  The options available are the same as those
  1514.             for the Find command except the exception of the following:
  1515.  
  1516.                N    Replaces without asking; does not prompt for
  1517.                     confirmation at each occurrence of the search string.
  1518.  
  1519.             If the text contains a target matching the search string, the
  1520.             target is highlighted and the cursor is positioned just beyond
  1521.             it.  You are then asked if you wish to replace it.  Press Y to
  1522.             replace it, N to ignore it, or A to replace it and all
  1523.             subsequent matches without asking.  You can abort the operation
  1524.             by pressing Q.  If you select N (no prompt) option, this
  1525.             question will not be asked.
  1526.  
  1527.           Search And Apply Macro                             <CtrlQ><CtrlM>
  1528.             Searches for any string up to 67 characters and then applies a
  1529.             macro to it; that is, it moves the cursor to your target, and
  1530.             executes the commands stored in the macro.  You can enter
  1531.             search strings in the same way as the Find command.  After the
  1532.             search string is entered, a menu is displayed containing all
  1533.             the macros you've defined.  Move the selection bar with the
  1534.             <Up> and <Down> arrow keys and select your macro by pressing
  1535.             <Enter>.  You can abort the operation by pressing <Esc>.
  1536.             Finally, you are prompted for options.
  1537.  
  1538.             The options you used last are displayed at first.  You may
  1539.             enter new options (canceling the old ones), edit the current
  1540.             options, or select them by pressing <Enter>.  The options
  1541.             available for the Find-and-Replace command are available here
  1542.             as well.
  1543.  
  1544.             The screen is not updated while a Search-and-Apply Macro
  1545.             operation is being performed (see Update Screen).  You can use
  1546.             the Abort command (<CtrlU>) to stop the operation.
  1547.  
  1548.           Find Next                                                 <CtrlL>
  1549.             Repeats the last search operation.  If the last search command
  1550.             called for a Find operation, the same search string and options
  1551.             will be repeated; for a Find-and-Replace operation, the
  1552.             replacement string will be reused as well.
  1553.  
  1554.  
  1555.  
  1556.  
  1557.  
  1558.  
  1559.  
  1560.  
  1561.  
  1562.  
  1563.  
  1564.  
  1565.  
  1566.  
  1567.           Page 26                               Chapter 9. Find And Replace
  1568.  
  1569.  
  1570.  
  1571.  
  1572.  
  1573.  
  1574.  
  1575.  
  1576.  
  1577.                                      Chapter Ten
  1578.  
  1579.                                     File Commands
  1580.  
  1581.  
  1582.           Edit Another File                                            <F3>
  1583.             If the file in the current window has not been modified, the
  1584.             window is cleared and you are prompted for a new file to edit
  1585.             in the same window.  If the files does need saving, you will be
  1586.             asked if the file should be abandoned.
  1587.  
  1588.           Abandon All Files                                            AltQ
  1589.             Closes all files and exits to DOS.  You will be asked if you
  1590.             want to save any files that have been modified.  You can abort
  1591.             this command by pressing <CtrlU> (Abort).
  1592.  
  1593.           Read File Into Window                              <CtrlK><CtrlR>
  1594.             Read a file into the text at the cursor's current position
  1595.             exactly as if it were copied from another part of the text.
  1596.             The file read in is marked as a block.
  1597.  
  1598.           Write Block to File                                <CtrlK><CtrlW>
  1599.             Writes the currently marked block to a file.  You are first
  1600.             prompted for a file name.  If the file already exists, you are
  1601.             asked if you want to overwrite it.  If the file does not exist,
  1602.             a new file is created.  The block is left unchanged, and the
  1603.             block markers remain in place.  If no block is marked, this
  1604.             command is ignored.
  1605.  
  1606.           Save and Continue Edit                     <CtrlK><CtrlS> or <F2>
  1607.             Simply saves the file in the active window.
  1608.  
  1609.           Save File and Close Window                         <CtrlK><CtrlX>
  1610.             Saves the file in the active window.  If the active window is
  1611.             the only window open, this command will quit to the menu,
  1612.             otherwise, the window is closed and you may continue editing in
  1613.             another window.
  1614.  
  1615.           Close All But Current Window                       <CtrlK><CtrlA>
  1616.             Closes all but the current window.  Changes, if any, are saved.
  1617.             If any files are unnamed (NONAME) you will be prompted for the
  1618.             file name.
  1619.  
  1620.           Save/switch files                                  <CtrlK><CtrlD>
  1621.             Save the file in the current window.  The window then cleared
  1622.             and you are prompted for a new file to edit in the same window.
  1623.  
  1624.           Save All and Exit to DOS                                   <AltX>
  1625.             Saves all files that have been modified and exits to DOS.
  1626.  
  1627.  
  1628.  
  1629.  
  1630.  
  1631.           Chapter 10. Find And Replace                              Page 27
  1632.  
  1633.  
  1634.  
  1635.  
  1636.  
  1637.  
  1638.           Write to Named File                                <CtrlK><CtrlN>
  1639.             Prompts you for a file name, then saves the file in the current
  1640.             window in the specified file.  This becomes the new name for
  1641.             the file in the window (and in any other windows that display
  1642.             the file).  This command is particularly useful when editing
  1643.             NONAME files.
  1644.  
  1645.  
  1646.  
  1647.  
  1648.  
  1649.  
  1650.  
  1651.  
  1652.  
  1653.  
  1654.  
  1655.  
  1656.  
  1657.  
  1658.  
  1659.  
  1660.  
  1661.  
  1662.  
  1663.  
  1664.  
  1665.  
  1666.  
  1667.  
  1668.  
  1669.  
  1670.  
  1671.  
  1672.  
  1673.  
  1674.  
  1675.  
  1676.  
  1677.  
  1678.  
  1679.  
  1680.  
  1681.  
  1682.  
  1683.  
  1684.  
  1685.  
  1686.  
  1687.  
  1688.  
  1689.  
  1690.  
  1691.  
  1692.  
  1693.  
  1694.  
  1695.           Page 28                                 Chapter 10. File Commands
  1696.  
  1697.  
  1698.  
  1699.  
  1700.  
  1701.  
  1702.  
  1703.  
  1704.  
  1705.                                    Chapter Eleven
  1706.  
  1707.                                    Window Commands
  1708.  
  1709.  
  1710.           Add Window                            <CtrlO><CtrlA> or <ShiftF3>
  1711.             Opens another window.  You will be prompted for a file to edit;
  1712.             if you do not specify one, a NONAME file is created.  You can
  1713.             later save it as a named file with the Save-to-File command.
  1714.  
  1715.             If too many windows are opened (limit of six) or if the active
  1716.             window is too small to be divided in half (fewer than seven
  1717.             screen lines including the status line), you will get an error
  1718.             message.
  1719.  
  1720.           Close Window                                       <CtrlK><CtrlQ>
  1721.             If the file in the active window has not been modified, this
  1722.             command closes the window.  Otherwise, you are asked to verify
  1723.             that the file would be abandoned before the window is closed.
  1724.             If the active window is the only window open you are placed in
  1725.             the menu system.
  1726.  
  1727.           Next Window                                <CtrlO><CtrlN> or <F6>
  1728.             Makes the next window the active window.
  1729.  
  1730.           Previous Window                       <CtrlO><CtrlP> or <ShiftF6>
  1731.             Makes the previous window the active window.
  1732.  
  1733.           Resize Active Window                               <CtrlO><CtrlS>
  1734.             Changes the size of the active window.  You can adjust the size
  1735.             by pressing the <Up> and <Dn> arrow keys.  When you are
  1736.             finished, pressing <Enter> or <Esc> returns you to the editor.
  1737.  
  1738.           Toggle Zoom Mode                                           <AltZ>
  1739.             If the current screen is in split window mode the current file
  1740.             is zoomed to fill the screen.  If the screen is already zoomed
  1741.             it is switched back to split window mode.
  1742.  
  1743.           Zoom The Current Window
  1744.             If the screen is in split window mode the current file is
  1745.             zoomed to file the screen.  If the screen is already in zoom
  1746.             mode this command does nothing.  This command is intended for
  1747.             use in macros when you wish to place the screen in a known
  1748.             state.  If you need it to be in split screen mode you should
  1749.             first force zoom mode then toggle the zoom mode.
  1750.  
  1751.  
  1752.  
  1753.  
  1754.  
  1755.  
  1756.  
  1757.  
  1758.  
  1759.           Chapter 11. File Commands                                 Page 29
  1760.  
  1761.  
  1762.  
  1763.  
  1764.  
  1765.  
  1766.  
  1767.  
  1768.  
  1769.  
  1770.  
  1771.  
  1772.  
  1773.  
  1774.  
  1775.  
  1776.  
  1777.  
  1778.  
  1779.  
  1780.  
  1781.  
  1782.  
  1783.  
  1784.  
  1785.  
  1786.  
  1787.  
  1788.  
  1789.  
  1790.  
  1791.  
  1792.  
  1793.  
  1794.  
  1795.  
  1796.  
  1797.  
  1798.  
  1799.  
  1800.  
  1801.  
  1802.  
  1803.  
  1804.  
  1805.  
  1806.  
  1807.  
  1808.  
  1809.  
  1810.  
  1811.  
  1812.  
  1813.  
  1814.  
  1815.  
  1816.  
  1817.  
  1818.  
  1819.  
  1820.  
  1821.  
  1822.  
  1823.           Page 30                               Chapter 11. Window Commands
  1824.  
  1825.  
  1826.  
  1827.  
  1828.  
  1829.  
  1830.  
  1831.  
  1832.  
  1833.                                    Chapter Twelve
  1834.  
  1835.                                    Block Commands
  1836.  
  1837.  
  1838.           Begin Block                                <F7> or <CtrlK><CtrlB>
  1839.             Marks the beginning of a block.  The marker itself is not
  1840.             visible on the screen, and the block becomes invisible only
  1841.             when the end-block marker is set.   You can also use the
  1842.             begin-block as an extra text marker and jump directly to it
  1843.             with <CtrlQ>CtrlB>.
  1844.  
  1845.           End Block                                  <F8> or <CtrlK><CtrlK>
  1846.             Marks the end of a block.  Like the begin-block marker, the
  1847.             end-block marker is invisible, and the block itself will not be
  1848.             displayed unless both markers are set.  You can also use the
  1849.             end-block marker as an extra text marker and jump directly to
  1850.             it with <CtrlQ><CtrlK>.
  1851.  
  1852.           Copy Block                                         <CtrlK><CtrlC>
  1853.             Creates a copy of a marked and displayed block at the current
  1854.             cursor position.  The original block is left unchanged, and the
  1855.             markers are placed around the new copy of the block.
  1856.  
  1857.           Move Block                                         <CtrlK><CtrlV>
  1858.             Moves a marked and displayed block from its current position to
  1859.             the cursor's position.  The markers remain around the block at
  1860.             its new position.
  1861.  
  1862.           Delete Block                                       <CtrlK><CtrlY>
  1863.             Deletes a marked and displayed block.  Although the Undo last
  1864.             deletion can usually restore portions of an accidentally
  1865.             deleted block, there is no command to restore a deleted block
  1866.             in its entirety, so use this command with care.
  1867.  
  1868.           Toggle Block Display                               <CtrlK><CtrlH>
  1869.             Toggles off and on the visual marking of a block.
  1870.  
  1871.           Mark Current Line                                  <CtrlK><CtrlL>
  1872.             Marks the current line as a block, combining the functions of
  1873.             the begin-block and end-block commands.
  1874.  
  1875.           Mark Current Word                                  <CtrlK><CtrlT>
  1876.             Marks a single word as a block, combining the functions of the
  1877.             begin-block and end-block commands.  If the cursor is
  1878.             positioned within a word, that word will be marked.  If it is
  1879.             not within a word, then the word to the right of the cursor
  1880.             will be marked, and if there is no word to the right of the
  1881.             cursor, then the word to the left will be marked.
  1882.  
  1883.  
  1884.  
  1885.  
  1886.  
  1887.           Chapter 12. Block Commands                                Page 31
  1888.  
  1889.  
  1890.  
  1891.  
  1892.  
  1893.  
  1894.           Shift Block Left                            <ShiftF7> or <AltLft>
  1895.             Shifts the marked block one character to the left.  If a block
  1896.             is not marked (or if the block is hidden) only the current line
  1897.             will be shifted.  A single space at the beginning of each line
  1898.             in the block is deleted.  If the first character in a line is
  1899.             not a space the line is left unaltered.
  1900.  
  1901.           Shift Block Right                           <ShiftF8> or <AltRgt>
  1902.             Shifts the marked block one character to the right.  If a block
  1903.             is not marked (or if the block is hidden) only the current line
  1904.             will be shifted.  A single space is inserted at the beginning
  1905.             of each line in the block.
  1906.  
  1907.  
  1908.  
  1909.  
  1910.  
  1911.  
  1912.  
  1913.  
  1914.  
  1915.  
  1916.  
  1917.  
  1918.  
  1919.  
  1920.  
  1921.  
  1922.  
  1923.  
  1924.  
  1925.  
  1926.  
  1927.  
  1928.  
  1929.  
  1930.  
  1931.  
  1932.  
  1933.  
  1934.  
  1935.  
  1936.  
  1937.  
  1938.  
  1939.  
  1940.  
  1941.  
  1942.  
  1943.  
  1944.  
  1945.  
  1946.  
  1947.  
  1948.  
  1949.  
  1950.  
  1951.           Page 32                                Chapter 12. Block Commands
  1952.  
  1953.  
  1954.  
  1955.  
  1956.  
  1957.  
  1958.  
  1959.  
  1960.  
  1961.                                   Chapter Thirteen
  1962.  
  1963.                                    Macro Commands
  1964.  
  1965.  
  1966.           Toggle Macro Record                                <CtrlJ><CtrlT>
  1967.             Turns macro recording on or off.  When macro recording is on,
  1968.             all subsequent keystrokes (up to the 255 keystroke limit) are
  1969.             saved until macro recording is turned off again.  Once the
  1970.             macro is recorded, you are asked to select a macro slot to
  1971.             store it in.
  1972.  
  1973.           Playback Scrap                                     <CtrlJ><CtrlI>
  1974.             Plays back the scrap macro (macro 0) a prompted number of
  1975.             times.  The "scrap macro" is always the same as the last macro
  1976.             that was recorded, even if it was saved as a normal macro
  1977.             (1-9).
  1978.  
  1979.           Playback scrap 1..9 times                   <CtrlJ>1 ... <CtrlJ>9
  1980.             Plays back the scrap macro 1 to 9 times.  <CtrlJ> 1 plays it
  1981.             back once, <CtrlJ> 2 twice, and so on.
  1982.  
  1983.           Playback Macro 1..9                             <Alt1> ... <Alt9>
  1984.             Plays back the specified macro one time.  <Alt1> plays back
  1985.             macro 1, <Alt2> macro 2, and so on.
  1986.  
  1987.           Playback
  1988.             Prompts you for a choice, then plays back the macro you
  1989.             selected.
  1990.  
  1991.           Edit Macro
  1992.             Allows you to edit previously saved macros.  Unity has a
  1993.             special editing module designed specifically for working with
  1994.             macros.  Special keys (function keys, cursor keys, and so on)
  1995.             are represented by abbreviated forms of their names - for
  1996.             example, <Esc>, <CtrlN>, <Enter> - so that you won't have to
  1997.             run to your reference books to see what characters represent
  1998.             what keystrokes, and these symbols are highlighted.  Regular
  1999.             keystrokes are shown as normal characters without highlighting.
  2000.  
  2001.             When you enter this command, you are asked to select a macro to
  2002.             edit (and optionally a name for the macro).  Then you enter the
  2003.             macro editor itself.  Several keys serve special purposes here:
  2004.             The cursor keys behave as usual, moving the cursor so you can
  2005.             select a particular keystroke to change; Backspace deletes a
  2006.             single keystroke, just as it does in the regular editor;
  2007.             <CtrlBksp> deletes an entire macro; <Esc> restores the macro to
  2008.             its previous state; and the <Enter> key takes you out of the
  2009.             macro editor.  The <ScrollLock> key acts as a toggle, turning
  2010.             literal interpretations of keystrokes on and off.  If you
  2011.             wanted to assign a macro with the <Enter> key or the
  2012.  
  2013.  
  2014.  
  2015.           Chapter 13. Block Commands                                Page 33
  2016.  
  2017.  
  2018.  
  2019.  
  2020.  
  2021.  
  2022.             <Backspace> key, which normally serve a special function, you
  2023.             would first press <ScrollLock>.  Pressing it again would
  2024.             restore all special keys to their previous state.
  2025.  
  2026.           Load Macros
  2027.             Allows you to load a file of previously saved macros.  If the
  2028.             file you specify does not exist, an error message is displayed.
  2029.  
  2030.           Store Macros
  2031.             Save the current macros to the file you specify.
  2032.  
  2033.  
  2034.  
  2035.  
  2036.  
  2037.  
  2038.  
  2039.  
  2040.  
  2041.  
  2042.  
  2043.  
  2044.  
  2045.  
  2046.  
  2047.  
  2048.  
  2049.  
  2050.  
  2051.  
  2052.  
  2053.  
  2054.  
  2055.  
  2056.  
  2057.  
  2058.  
  2059.  
  2060.  
  2061.  
  2062.  
  2063.  
  2064.  
  2065.  
  2066.  
  2067.  
  2068.  
  2069.  
  2070.  
  2071.  
  2072.  
  2073.  
  2074.  
  2075.  
  2076.  
  2077.  
  2078.  
  2079.           Page 34                                Chapter 13. Macro Commands
  2080.  
  2081.  
  2082.  
  2083.  
  2084.  
  2085.  
  2086.  
  2087.  
  2088.  
  2089.                                   Chapter Fourteen
  2090.  
  2091.                                Macro Looping Commands
  2092.  
  2093.  
  2094.           Repeat Macro                                       <CtrlJ><CtrlM>
  2095.             Repeats the currently running macro.  Care must be taken to
  2096.             insure that one of the macro abort commands is used to avoid an
  2097.             infinitely repeating loop.  If this should occur, pressing the
  2098.             abort key (normally <CtrlU>) will halt the macro.
  2099.  
  2100.             Each time the Repeat Macro command is executed an internal
  2101.             counter is incremented and the new counter value is displayed
  2102.             in the upper right corner of the the screen.
  2103.  
  2104.             While a macro is running the screen is not updated to improve
  2105.             performance.  If you wish a to have visual feedback of your
  2106.             repeating macro you should insert the Update Screen command
  2107.             somewhere in your macro sequence.
  2108.  
  2109.           Abort Macro if Out of Block                        <CtrlJ><CtrlN>
  2110.             If the current line is not within the specified block the macro
  2111.             is aborted.
  2112.  
  2113.             A macro to shift all lines in the specified block two
  2114.             characters to the right is:
  2115.  
  2116.                  <CtrlJ>n            ; abort macro if out of block
  2117.                  "  "                     ; two spaces (the " are not entered)
  2118.                  <Home>                   ; move to beginning of line
  2119.                  <CtrlX>                  ; move down one line
  2120.                  <CtrlJ>m            ; repeat the macro
  2121.  
  2122.           Abort Macro If End Of File                         <CtrlJ><CtrlQ>
  2123.             If the cursor is on the FIRST or LAST line of the file the
  2124.             macro is aborted.
  2125.  
  2126.           Abort Macro if Blank Line                          <CtrlJ><CtrlO>
  2127.             If the current line is blank the macro is aborted.
  2128.  
  2129.           Update Screen                                      <CtrlJ><CtrlU>
  2130.             Forces a complete update of the screen.  This command is
  2131.             intended for use inside a macro.  Normally, while a macro is
  2132.             executing the screen is not updated until completion so as to
  2133.             improve performance.  If you wish visual feedback while running
  2134.             a long, repeating macro, place this command somewhere in your
  2135.             macro.  Using this command will greatly slow execution of a
  2136.             macro, however.
  2137.  
  2138.  
  2139.  
  2140.  
  2141.  
  2142.  
  2143.           Chapter 14. Macro Commands                                Page 35
  2144.  
  2145.  
  2146.  
  2147.  
  2148.  
  2149.  
  2150.  
  2151.  
  2152.  
  2153.  
  2154.  
  2155.  
  2156.  
  2157.  
  2158.  
  2159.  
  2160.  
  2161.  
  2162.  
  2163.  
  2164.  
  2165.  
  2166.  
  2167.  
  2168.  
  2169.  
  2170.  
  2171.  
  2172.  
  2173.  
  2174.  
  2175.  
  2176.  
  2177.  
  2178.  
  2179.  
  2180.  
  2181.  
  2182.  
  2183.  
  2184.  
  2185.  
  2186.  
  2187.  
  2188.  
  2189.  
  2190.  
  2191.  
  2192.  
  2193.  
  2194.  
  2195.  
  2196.  
  2197.  
  2198.  
  2199.  
  2200.  
  2201.  
  2202.  
  2203.  
  2204.  
  2205.  
  2206.  
  2207.           Page 36                        Chapter 14. Macro Looping Commands
  2208.  
  2209.  
  2210.  
  2211.  
  2212.  
  2213.  
  2214.  
  2215.  
  2216.  
  2217.                                    Chapter Fifteen
  2218.  
  2219.                                    Format Commands
  2220.  
  2221.  
  2222.           Toggle Insert Mode                               <Ins> or <CtrlV>
  2223.             Selects the Insert or Overwrite mode.  In insert mode, text to
  2224.             the right of the cursor is moved to the right as new text is
  2225.             entered.  In Overwrite mode, any text beneath the cursor is
  2226.             overwritten when new text is entered.  Notice that the cursor's
  2227.             size is an indication of the mode you are in:  A thin cursor
  2228.             indicates Overwrite, while a slightly fatter cursor indicates
  2229.             Insert.
  2230.  
  2231.           Force Insert Mode
  2232.             This command forces insert mode.  It is primarily intended to
  2233.             be used in macros when you need to force insert mode on.
  2234.  
  2235.           Force Overtype Mode
  2236.             This command forces overtype mode.  It is primarily intended to
  2237.             be used in macros.
  2238.  
  2239.           Toggle Autoindent                                  <CtrlQ><CtrlI>
  2240.             When Autoindent mode is in effect, the New line command
  2241.             (<Enter> or <CtrlM>) will move the cursor to the next row and
  2242.             to the same column as the first nonblank character on the
  2243.             previous line.
  2244.  
  2245.           Force Autoindent Mode
  2246.             Forces autoindent mode on.  This command is primarily intended
  2247.             to be used in macros.
  2248.  
  2249.           Toggle Word Wrap                                          CtrlO W
  2250.             Turns on or off the word wrap mode.  When word wrap is on a new
  2251.             line will automatically be started when the right margin is
  2252.             reached.  When word wrap is off a new line must be specifically
  2253.             entered.
  2254.  
  2255.           Force Word Wrap On
  2256.             Force word wrap mode on.  This command is primarily intended to
  2257.             be used in macros.
  2258.  
  2259.           Toggle Right Justify                               <CtrlO><CtrlJ>
  2260.             If wordwrap is on, all wordwrap and reformatting operations
  2261.             fill out each line such that the last character in each line
  2262.             touches the right margin.  Note:  Turning right-justification
  2263.             on automatically turns on wordwrap.
  2264.  
  2265.  
  2266.  
  2267.  
  2268.  
  2269.  
  2270.  
  2271.           Chapter 15. Format Commands                               Page 37
  2272.  
  2273.  
  2274.  
  2275.  
  2276.  
  2277.  
  2278.           Toggle Compress At Wrap
  2279.             When Unity wraps or reformats text that falls beyond the right
  2280.             margin, its usual first step is to compress excess blanks from
  2281.             the current line.  This step is needed so that previously
  2282.             right-justified text can be reformatted with the padding spaces
  2283.             automatically removed.  In some cases, however, the compression
  2284.             will remove desired spaces, such as those used for aligning
  2285.             columns of figures in a table.  The compress wrap toggle is
  2286.             designed to control this behavior.  When Compress Wrap is off,
  2287.             Unity will not remove spaces in a line when it starts to wrap
  2288.             it.
  2289.  
  2290.           Set Left Margin                                    <CtrlO><CtrlL>
  2291.             Sets the left margin for text displayed on the screen.
  2292.  
  2293.           Set Right Margin                                   <CtrlO><CtrlR>
  2294.             Sets the right margin for text displayed on the screen.
  2295.  
  2296.           Set Temporary Margin                               <CtrlO><CtrlG>
  2297.             Temporarily moves the left margin one tab stop to the right.
  2298.             The temporary margin remains in force until you leave the
  2299.             current paragraph.  This command works only if wordwrap and
  2300.             fixed tabs are on; if they are off, an error message is
  2301.             displayed.  When the tab line is on, the temporary margin is
  2302.             indicated by an arrow pointing to the right.
  2303.  
  2304.           Set Temporary Margin To Cursor             <F4> or <CtrlO><CtrlH>
  2305.             Same as the Set Temporary Margin command except that the left
  2306.             margin is set to the current position of the cursor instead of
  2307.             the next tab stop.
  2308.  
  2309.           Margin Release                                     <CtrlO><CtrlX>
  2310.             Allows you to type beyond the left or right margin when
  2311.             wordwrap is on.  The margin release remains in effect until the
  2312.             cursor is moved to a new line.
  2313.  
  2314.           Center Line                                        <CtrlO><CtrlC>
  2315.             Centers the current line within the left and right margins.
  2316.             This command works whether wordwrap is on or off.
  2317.  
  2318.           Toggle Case                                        <CtrlO><CtrlO>
  2319.             Toggles the case case of the character above the cursor
  2320.             (upper-case letters are changed to their lower-case
  2321.             equivalents, and vice versa).  If the cursor is within a marked
  2322.             (and displayed) block, the command affects all characters in
  2323.             the block.
  2324.  
  2325.           Lower Case                                         <CtrlO><CtrlV>
  2326.             Same as Toggle case command except that it changes the
  2327.             character(s) to its lower-case equivalent.
  2328.  
  2329.           Upper Case                                         <CtrlO><CtrlU>
  2330.             Same as toggle case command except that it changes the
  2331.             character(s) to its upper-case equivalent.
  2332.  
  2333.  
  2334.  
  2335.           Page 38                               Chapter 15. Format Commands
  2336.  
  2337.  
  2338.  
  2339.  
  2340.  
  2341.  
  2342.           Reformat Paragraph                                        <CtrlB>
  2343.             Rearranges words from the current line to the end of the
  2344.             paragraph so that the lines are as full as possible, given the
  2345.             constraints imposed by the left and right margins.  if right-
  2346.             justification is on, the lines will also be evenly padded with
  2347.             spaces until the last character on the line touches the right
  2348.             margin.  The end of a paragraph is signaled by a blank line.
  2349.  
  2350.           Reformat Block                                     <CtrlK><CtrlF>
  2351.             Reformats all paragraphs within the currently marked block.
  2352.  
  2353.  
  2354.  
  2355.  
  2356.  
  2357.  
  2358.  
  2359.  
  2360.  
  2361.  
  2362.  
  2363.  
  2364.  
  2365.  
  2366.  
  2367.  
  2368.  
  2369.  
  2370.  
  2371.  
  2372.  
  2373.  
  2374.  
  2375.  
  2376.  
  2377.  
  2378.  
  2379.  
  2380.  
  2381.  
  2382.  
  2383.  
  2384.  
  2385.  
  2386.  
  2387.  
  2388.  
  2389.  
  2390.  
  2391.  
  2392.  
  2393.  
  2394.  
  2395.  
  2396.  
  2397.  
  2398.  
  2399.           Chapter 15. Format Commands                               Page 39
  2400.  
  2401.  
  2402.  
  2403.  
  2404.  
  2405.  
  2406.  
  2407.  
  2408.  
  2409.  
  2410.  
  2411.  
  2412.  
  2413.  
  2414.  
  2415.  
  2416.  
  2417.  
  2418.  
  2419.  
  2420.  
  2421.  
  2422.  
  2423.  
  2424.  
  2425.  
  2426.  
  2427.  
  2428.  
  2429.  
  2430.  
  2431.  
  2432.  
  2433.  
  2434.  
  2435.  
  2436.  
  2437.  
  2438.  
  2439.  
  2440.  
  2441.  
  2442.  
  2443.  
  2444.  
  2445.  
  2446.  
  2447.  
  2448.  
  2449.  
  2450.  
  2451.  
  2452.  
  2453.  
  2454.  
  2455.  
  2456.  
  2457.  
  2458.  
  2459.  
  2460.  
  2461.  
  2462.  
  2463.           Page 40                               Chapter 15. Format Commands
  2464.  
  2465.  
  2466.  
  2467.  
  2468.  
  2469.  
  2470.  
  2471.  
  2472.  
  2473.                                    Chapter Sixteen
  2474.  
  2475.                                 Miscellaneous Toggles
  2476.  
  2477.  
  2478.           Toggle Tab Line                                    <CtrlO><CtrlT>
  2479.             Turns on and off displaying tab line for the current window.
  2480.             The tab line shows you the position of all tab stops, as well
  2481.             as the current left and right margins.  Note:  Turning on the
  2482.             tab line automatically turns on fixed tabs.
  2483.  
  2484.           Toggle Marker Display                              <CtrlK><CtrlM>
  2485.             Hides or makes all text markers visible. Setting a new text
  2486.             marker automatically turns on Marker display if it was
  2487.             previously turned off.
  2488.  
  2489.           Toggle Key Help                                    <CtrlJ><CtrlK>
  2490.             By default, symbols for the primary command associated with
  2491.             particular menu choices are displayed on the prompt line as you
  2492.             scroll through the lists of choices.  This feature is intended
  2493.             to help you learn the shortcut commands for menu items.
  2494.  
  2495.  
  2496.  
  2497.  
  2498.  
  2499.  
  2500.  
  2501.  
  2502.  
  2503.  
  2504.  
  2505.  
  2506.  
  2507.  
  2508.  
  2509.  
  2510.  
  2511.  
  2512.  
  2513.  
  2514.  
  2515.  
  2516.  
  2517.  
  2518.  
  2519.  
  2520.  
  2521.  
  2522.  
  2523.  
  2524.  
  2525.  
  2526.  
  2527.           Chapter 16. Miscellaneous Toggles                         Page 41
  2528.  
  2529.  
  2530.  
  2531.  
  2532.  
  2533.  
  2534.  
  2535.  
  2536.  
  2537.  
  2538.  
  2539.  
  2540.  
  2541.  
  2542.  
  2543.  
  2544.  
  2545.  
  2546.  
  2547.  
  2548.  
  2549.  
  2550.  
  2551.  
  2552.  
  2553.  
  2554.  
  2555.  
  2556.  
  2557.  
  2558.  
  2559.  
  2560.  
  2561.  
  2562.  
  2563.  
  2564.  
  2565.  
  2566.  
  2567.  
  2568.  
  2569.  
  2570.  
  2571.  
  2572.  
  2573.  
  2574.  
  2575.  
  2576.  
  2577.  
  2578.  
  2579.  
  2580.  
  2581.  
  2582.  
  2583.  
  2584.  
  2585.  
  2586.  
  2587.  
  2588.  
  2589.  
  2590.  
  2591.           Page 42                         Chapter 16. Miscellaneous Toggles
  2592.  
  2593.  
  2594.  
  2595.  
  2596.  
  2597.  
  2598.  
  2599.  
  2600.  
  2601.                                   Chapter Seventeen
  2602.  
  2603.                                    System Commands
  2604.  
  2605.  
  2606.           Invoke DOS Shell                                         <CtrlF9>
  2607.             Gives you access to DOS services or to other program from
  2608.             inside Unity.  At the prompt box, enter a DOS command just as
  2609.             you would at the DOS prompt; for example, typing "DEL *.BAK"
  2610.             would delete all files in the current directory with the
  2611.             extension "BAK".  If you need to run several program you can
  2612.             invoke a DOS shell simply by pressing <Enter>.  To return to
  2613.             Unity, type "EXIT" at the DOS command line - you will be right
  2614.             back where you started.
  2615.  
  2616.           Log Drive/Path                                     <CtrlJ><CtrlD>
  2617.             Changes the active drive and directory.
  2618.  
  2619.           Show System Info                                   <CtrlJ><CtrlV>
  2620.             Shows a variety of statistics about the file being edited in
  2621.             the current window, as well as certain system information:  the
  2622.             full name of the file; whether it has been modified or not; the
  2623.             number of lines, bytes, and words in the file; the current time
  2624.             and date; the amount of memory remaining; the version of DOS
  2625.             being used; the amount of space remaining on the currently
  2626.             logged drive; and the current drive and directory.
  2627.  
  2628.             Because some of the file statistics (notably word count) can
  2629.             take a long time to computer, you may want to skip them by
  2630.             pressing any key while they are being updated.  This tells
  2631.             Unity to stop what it is doing and jump ahead to the system
  2632.             information section.
  2633.  
  2634.           Show Available Memory                              <CtrlJ><CtrlR>
  2635.             Shows you the amount of random access memory (RAM) available.
  2636.  
  2637.           File Directory
  2638.             Shows you a directory listing.  At the prompt box enter a file
  2639.             mask; for example:
  2640.  
  2641.                  C:\DOCS\*.DOC
  2642.  
  2643.             shows you all the files in subdirectory DOCS on drive C that
  2644.             have the extension .DOC.  If a drive or path is not specified,
  2645.             the default directory is assumed.  Once a mask has been
  2646.             entered, all files matching the search criteria will be
  2647.             displayed in sorted order in a pop-up window.  If the window is
  2648.             too small for all the file names, you can scroll the list using
  2649.             the cursor keys:  <PgUp> and <PgDn> scroll the display one
  2650.             screenful, <Home> scrolls to the first file in the list, and
  2651.             <End> scrolls to the last file.
  2652.  
  2653.  
  2654.  
  2655.           Chapter 17. System Commands                               Page 43
  2656.  
  2657.  
  2658.  
  2659.  
  2660.  
  2661.  
  2662.  
  2663.  
  2664.  
  2665.  
  2666.  
  2667.  
  2668.  
  2669.  
  2670.  
  2671.  
  2672.  
  2673.  
  2674.  
  2675.  
  2676.  
  2677.  
  2678.  
  2679.  
  2680.  
  2681.  
  2682.  
  2683.  
  2684.  
  2685.  
  2686.  
  2687.  
  2688.  
  2689.  
  2690.  
  2691.  
  2692.  
  2693.  
  2694.  
  2695.  
  2696.  
  2697.  
  2698.  
  2699.  
  2700.  
  2701.  
  2702.  
  2703.  
  2704.  
  2705.  
  2706.  
  2707.  
  2708.  
  2709.  
  2710.  
  2711.  
  2712.  
  2713.  
  2714.  
  2715.  
  2716.  
  2717.  
  2718.  
  2719.           Page 44                               Chapter 17. System Commands
  2720.  
  2721.  
  2722.  
  2723.  
  2724.  
  2725.  
  2726.  
  2727.  
  2728.  
  2729.                                   Chapter Eighteen
  2730.  
  2731.                                    Default Options
  2732.  
  2733.  
  2734.           Set Undo Limit                                     <CtrlJ><CtrlU>
  2735.             Sets the size of the "undo buffer" which stores deleted lines.
  2736.             The default value is 20 lines.  This setting will be saved if
  2737.             you use the Save Options command.
  2738.  
  2739.           Set Error Buffer Size
  2740.             Sets the number of error messages that Unity can retain at
  2741.             once.  The default setting is 20.  The valid range is 10 to
  2742.             100.  Changes to this setting will not take affect until you
  2743.             save your operations, exit, and restart the editor.
  2744.  
  2745.           Set Support Path
  2746.             Tells Unity where its optional support files are located (macro
  2747.             and help files).
  2748.  
  2749.           Set Default Extension
  2750.             Sets the default extension for file names.  This extension is
  2751.             automatically added to file names lacking extensions.  For
  2752.             example, if you have set the default extension to .PAS and are
  2753.             about to load SAMPLE.PAS, you can simply enter SAMPLE when
  2754.             prompted for a file name.
  2755.  
  2756.           Set Colors
  2757.             Changes the colors used for text windows, status lines, pull-
  2758.             down menus, and so on.  You will first be shown a list of the
  2759.             current color settings.  Select the one you want to change by
  2760.             moving the selection bar with the arrow keys, then press
  2761.             <Enter>.  The choices available to you are displayed, and the
  2762.             current setting is marked with a snowflake character.  You can
  2763.             change the setting by moving the snowflake with the arrow keys;
  2764.             as it moves, the item to be changed will reflect the change in
  2765.             colors.  When you find the color you want, press <Enter> to
  2766.             select it.  To restore the original setting, press <Esc>
  2767.             instead.
  2768.  
  2769.           Toggle Snow Check
  2770.             Unity is designed to avoid the annoying screen interference
  2771.             known as snow on color graphics adapters.  Enhanced Graphics
  2772.             Adapters (EGAs) and many of the newer color adapters do not
  2773.             have this problem.  If you don't experience this problem
  2774.             either, then turn snow prevention off.  This improves Unity's
  2775.             performance quite noticeably.  This command is ignored if you
  2776.             are using a monochrome adapter.
  2777.  
  2778.  
  2779.  
  2780.  
  2781.  
  2782.  
  2783.           Chapter 18. Default Options                               Page 45
  2784.  
  2785.  
  2786.  
  2787.  
  2788.  
  2789.  
  2790.           Toggle Block Cursor
  2791.             Hides the blinking cursor you normally see on the screen and
  2792.             replaces it with a nonblinking "block cursor."  You can change
  2793.             the appearance of the block cursor with the Set Colors command.
  2794.             The blinking cursor is restored when you leave Unity.
  2795.  
  2796.           Select Video Mode
  2797.             Cycles through video modes as supported by the active video
  2798.             device driver.  This command is ignored unless UNITY.VID was
  2799.             located and loaded by Unity.  The video mode can be overridden
  2800.             at the command line with the /M options, for example:
  2801.  
  2802.                  UNITY /m25x80 myfile.pas
  2803.  
  2804.  
  2805.             If the indicated video mode is not defined in the video device
  2806.             driver it will be ignored.
  2807.  
  2808.           Select DESQview Video Mode
  2809.             This command is identical to the Select Video Mode command
  2810.             except the chosen video mode is only used when Unity is running
  2811.             under DESQview.  Since DESQview does not support most video
  2812.             modes this command is included so you may select a mode to be
  2813.             used when DESQview is detected.
  2814.  
  2815.           Toggle Enhanced Keyboard
  2816.             Enables or disables the use of enhanced keyboard function
  2817.             calls.  Certain keystrokes, such as F11 and F12 are only
  2818.             available if this mode is turned on and an enhanced keyboard is
  2819.             present.  Certain TSR programs, such as Turbo Lightning, will
  2820.             not work with this mode enabled.  This setting has no affect if
  2821.             an enhanced keyboard is not installed.
  2822.  
  2823.           Toggle Dual Display
  2824.             Enables or disables the use of a secondary monitor for the
  2825.             output of the compiler displays instead of the use of a window
  2826.             on the primary screen.  This function will have no effect if a
  2827.             secondary monitor is not detected.  Warning!  Do not enable
  2828.             this option if you have QEMM or a similar memory manager
  2829.             installed and don't have a second monitor.  Memory which is
  2830.             mapped into the video segments will confuse Unity, resulting in
  2831.             a locked system.
  2832.  
  2833.           Toggle Tab Expansion
  2834.             When enabled, expands tab characters to spaces when reading in
  2835.             files created with other editors.  The assumed size of the tabs
  2836.             is specified with the Set Tab Size command.  Spaces may be
  2837.             converted back to tabs when the file is written (see Toggle Tab
  2838.             Writing in the next section).
  2839.  
  2840.  
  2841.  
  2842.  
  2843.  
  2844.  
  2845.  
  2846.  
  2847.           Page 46                               Chapter 18. Default Options
  2848.  
  2849.  
  2850.  
  2851.  
  2852.  
  2853.  
  2854.           Toggle Tab Writing
  2855.             When enabled, Unity converts strings of blanks to tabs when a
  2856.             file is written to disk.  This will save disk space, especially
  2857.             for indented programming languages such as Pascal, C, and
  2858.             assembler.  Unity uses the current default tab spacing when it
  2859.             converts the blanks into tabs.
  2860.  
  2861.           Toggle Hi-bit Strip
  2862.             Strips "high-order bits" when reading in files created with
  2863.             certain editors, notably WordStar, which use the eighth
  2864.             (highest) bit in a byte to store information.  To see whether
  2865.             you need to use this option, display the file using the DOS
  2866.             TYPE command.  If the last letter in each word is garbled, you
  2867.             should select this option before reading the file for editing.
  2868.  
  2869.           Toggle Initial Zoom
  2870.             If set, new windows are automatically zoomed to fill the screen
  2871.             when they are opened.  This setting does not affect the
  2872.             behavior of the current Zoom status.
  2873.  
  2874.           Toggle EMS usage
  2875.             When enabled, EMS will be used (if available) to reduce the
  2876.             memory overhead of Unity to less than 10k whenever an external
  2877.             program, such as a compiler or a DOS shell, is executed.
  2878.             Sufficient Expanded Memory must be available to Unity for it to
  2879.             reduce its memory.
  2880.  
  2881.           Toggle XMS Usage
  2882.             Similar to Toggle EMS Usage except it is for XMS, the eXtended
  2883.             Memory System standard.  An XMS device driver and sufficient
  2884.             extended memory must be available for Unity to take advantage.
  2885.             If both EMS and XMS are enabled, Unity will first attempt to
  2886.             use XMS, if device driver is not installed or there is
  2887.             insufficient memory EMS will be used.  If neither is available
  2888.             it may not be possible to reduce memory overhead enough to
  2889.             execute external programs.
  2890.  
  2891.           Set Swap Drive
  2892.             If you wish to enable swapping to disk you must specify the
  2893.             drive to use for swapping.  Swapping to a physical disk is not
  2894.             recommended.  If at all possible limit swapping to a RAM disk.
  2895.             Disk swapping is used as a last resort only if EMS or XMS is
  2896.             not available.  Leaving the swap drive blank disables this
  2897.             option which is the default setting.
  2898.  
  2899.           Save Defaults
  2900.             Saves the current configuration settings as the defaults.  All
  2901.             values that could be changed in the Options and Program/Options
  2902.             pull down menus will be saved.  It is particularly important
  2903.             that you specify the drive and directory where Unity's support
  2904.             files are located unless you define the subdirectory where the
  2905.             support files are located with the environmental variable
  2906.             UNITY=.
  2907.  
  2908.  
  2909.  
  2910.  
  2911.           Chapter 18. Default Options                               Page 47
  2912.  
  2913.  
  2914.  
  2915.  
  2916.  
  2917.  
  2918.             You will have the option of of the EXE file being modified with
  2919.             the new defaults or of saving them to a configuration file
  2920.             (UNITY.CFG).  If you are running under a network you should
  2921.             always save to a configuration file.  You might also wish to
  2922.             use a configuration file if you desire different settings for
  2923.             different subdirectories.  If you wish to compress UNITY.EXE
  2924.             with one of the popular run-time compression programs such as
  2925.             LHEXE your only option is to save to a configuration file.
  2926.  
  2927.  
  2928.  
  2929.  
  2930.  
  2931.  
  2932.  
  2933.  
  2934.  
  2935.  
  2936.  
  2937.  
  2938.  
  2939.  
  2940.  
  2941.  
  2942.  
  2943.  
  2944.  
  2945.  
  2946.  
  2947.  
  2948.  
  2949.  
  2950.  
  2951.  
  2952.  
  2953.  
  2954.  
  2955.  
  2956.  
  2957.  
  2958.  
  2959.  
  2960.  
  2961.  
  2962.  
  2963.  
  2964.  
  2965.  
  2966.  
  2967.  
  2968.  
  2969.  
  2970.  
  2971.  
  2972.  
  2973.  
  2974.  
  2975.           Page 48                               Chapter 18. Default Options
  2976.  
  2977.  
  2978.  
  2979.  
  2980.  
  2981.  
  2982.  
  2983.  
  2984.  
  2985.                                   Chapter Nineteen
  2986.  
  2987.                                     Tab Commands
  2988.  
  2989.  
  2990.           Tab                                                Tab or <CtrlI>
  2991.             Moves the cursor to the next tab.  In Insert Mode, any text to
  2992.             the right of the cursor is moved along with it; in Overwrite
  2993.             mode, only the cursor is moved.
  2994.  
  2995.           Backward Tab                                          <Shift-Tab>
  2996.             If fixed tabs are in effect, this command moves the cursor to
  2997.             the previous tab stop.  Unlike the Tab command, this command
  2998.             moves only the cursor.  It never moves text, whether in Insert
  2999.             or Overwrite mode.  If smart tabs are in effect, this command
  3000.             does nothing.
  3001.  
  3002.           Toggle Fixed Tabs                                       <CtrlTab>
  3003.             When fixed tabs are in effect, the tab stops (normally) start
  3004.             at column 9 and occur every 8 columns thereafter.  By default,
  3005.             smart tabs are on and fixed tabs are off.  When smart tabs are
  3006.             in use, the tab stops are determined by the locations of the
  3007.             words on the previous line; the first character in each word
  3008.             represents a tab stop.  To change the locations of the stops
  3009.             when using fixed tabs, use the Set Tab Size, Edit Tab Line, or
  3010.             Set Tab Line commands.
  3011.  
  3012.           Set Tab Size
  3013.             Sets the default tab size to be used when fixed tabs are on.
  3014.             This value is also used when expanding tab characters if the
  3015.             tab expansion option is on.  See the discussion of the Toggle
  3016.             Tab Expansion command.
  3017.  
  3018.  
  3019.  
  3020.  
  3021.  
  3022.  
  3023.  
  3024.  
  3025.  
  3026.  
  3027.  
  3028.  
  3029.  
  3030.  
  3031.  
  3032.  
  3033.  
  3034.  
  3035.  
  3036.  
  3037.  
  3038.  
  3039.           Chapter 19. Default Options                               Page 49
  3040.  
  3041.  
  3042.  
  3043.  
  3044.  
  3045.  
  3046.  
  3047.  
  3048.  
  3049.  
  3050.  
  3051.  
  3052.  
  3053.  
  3054.  
  3055.  
  3056.  
  3057.  
  3058.  
  3059.  
  3060.  
  3061.  
  3062.  
  3063.  
  3064.  
  3065.  
  3066.  
  3067.  
  3068.  
  3069.  
  3070.  
  3071.  
  3072.  
  3073.  
  3074.  
  3075.  
  3076.  
  3077.  
  3078.  
  3079.  
  3080.  
  3081.  
  3082.  
  3083.  
  3084.  
  3085.  
  3086.  
  3087.  
  3088.  
  3089.  
  3090.  
  3091.  
  3092.  
  3093.  
  3094.  
  3095.  
  3096.  
  3097.  
  3098.  
  3099.  
  3100.  
  3101.  
  3102.  
  3103.           Page 50                                  Chapter 19. Tab Commands
  3104.  
  3105.  
  3106.  
  3107.  
  3108.  
  3109.  
  3110.  
  3111.  
  3112.  
  3113.                                    Chapter Twenty
  3114.  
  3115.                                     Help Commands
  3116.  
  3117.  
  3118.           Help Menu                                                    <F1>
  3119.             General help is available both when you are in the menu system
  3120.             and when you are editing.  By selecting U for Utility and H for
  3121.             help at the main menu, or by pressing <F1>, you can invoke a
  3122.             menu of topics on which help is available.  Move the selection
  3123.             bar to the desired topic and press <Enter> to get information
  3124.             on it.
  3125.  
  3126.           Show Help Summary                                  <CtrlJ><CtrlH>
  3127.             Displays a brief description of the help system and how it
  3128.             works.
  3129.  
  3130.           Status Help
  3131.             Provides help on the Help system itself and on the status
  3132.             commands (Show System Info and Show Available Memory).
  3133.  
  3134.           Cursor Help
  3135.             Provides help on the basic cursor commands.
  3136.  
  3137.           Quick Movement Help
  3138.             Provides help on the Quick cursor movement commands.
  3139.  
  3140.           Delete Help
  3141.             Provides help on the text insertion and deletion commands.
  3142.  
  3143.           Find/Replace Help
  3144.             Provides help on the Find, Find-and-Replace, and Search-and-
  3145.             Apply-Macro commands.
  3146.  
  3147.           File Help
  3148.             Provides help on the file commands.
  3149.  
  3150.           Window Help
  3151.             Provides help on the window commands.
  3152.  
  3153.           Block Help
  3154.             Proves help on the block commands.
  3155.  
  3156.           Text Help
  3157.             Provides help on the text formatting commands.
  3158.  
  3159.           Tab Help
  3160.             Provides help on tab commands.
  3161.  
  3162.  
  3163.  
  3164.  
  3165.  
  3166.  
  3167.           Chapter 20. Help Commands                                 Page 51
  3168.  
  3169.  
  3170.  
  3171.  
  3172.  
  3173.  
  3174.           Utility Help
  3175.             Provides help on the commands that give access to system-level
  3176.             functions.
  3177.  
  3178.           Settings Help
  3179.             Provides help on commands that change default settings or that
  3180.             toggle particular options on and off.
  3181.  
  3182.           Program Help
  3183.             Provides help on the compiler support commands.
  3184.  
  3185.           Macro Help
  3186.             Provides help on using the macro commands.
  3187.  
  3188.           Function Key Help
  3189.             Provides a quick reference list, showing all the commands
  3190.             assigned to function keys.
  3191.  
  3192.  
  3193.  
  3194.  
  3195.  
  3196.  
  3197.  
  3198.  
  3199.  
  3200.  
  3201.  
  3202.  
  3203.  
  3204.  
  3205.  
  3206.  
  3207.  
  3208.  
  3209.  
  3210.  
  3211.  
  3212.  
  3213.  
  3214.  
  3215.  
  3216.  
  3217.  
  3218.  
  3219.  
  3220.  
  3221.  
  3222.  
  3223.  
  3224.  
  3225.  
  3226.  
  3227.  
  3228.  
  3229.  
  3230.  
  3231.           Page 52                                 Chapter 20. Help Commands
  3232.  
  3233.  
  3234.  
  3235.  
  3236.  
  3237.  
  3238.  
  3239.  
  3240.  
  3241.                                  Chapter Twenty-One
  3242.  
  3243.                                 Programming Commands
  3244.  
  3245.  
  3246.           Project                                                      <F9>
  3247.             If the primary file has the extension .PJU it will process the
  3248.             project files and execute compiler commands as necessary.  See
  3249.             the PROJECT chapter for additional details.
  3250.  
  3251.             If the primary file does not have the extension .PJU then this
  3252.             command command will simply process the primary file, selecting
  3253.             the necessary tool by checking the file extension.
  3254.  
  3255.             If the default extension of a file has not been bound to a
  3256.             compiler or assembler (using the installation program) the
  3257.             first compiler (TPC.EXE by default) will be used.
  3258.  
  3259.           Run Tool
  3260.             Unity supports up to ten compilers, assemblers or programming
  3261.             tools.  Several have been preinstalled.  You may change or
  3262.             modify these settings with the installation program.  When a
  3263.             tool is installed an entry for it is automatically added to the
  3264.             drop down menu.  For convenience you may wish to configure a
  3265.             key to invoke an often used tool.
  3266.  
  3267.             Some of the programs that have been installed are:
  3268.  
  3269.             Tool 1 <AltC>:
  3270.  
  3271.                  Menu name:  Compile
  3272.                  Program name:  TPC.EXE
  3273.                  Primary extension:  PAS
  3274.                  Alternate extension:
  3275.                  Options:  /Q/M/V %1
  3276.                  Compiler:  Yes
  3277.                  Run project:  No
  3278.                  Pause?  No
  3279.                  Prompt?  No
  3280.                  Run filter:  On error
  3281.                  Filter:  FERROR.EXE
  3282.                  Filter options:  %1
  3283.  
  3284.  
  3285.  
  3286.  
  3287.  
  3288.  
  3289.  
  3290.  
  3291.  
  3292.  
  3293.  
  3294.  
  3295.           Chapter 21. Help Commands                                 Page 53
  3296.  
  3297.  
  3298.  
  3299.  
  3300.  
  3301.  
  3302.             Tool #2 <AltA>:
  3303.  
  3304.                  Menu name:  Assemble
  3305.                  Program name:  TASM.EXE
  3306.                  Primary extension:  ASM
  3307.                  Alternate extension:
  3308.                  Options:  /T/M5 %1
  3309.                  Compiler?  Yes
  3310.                  Run project?  No
  3311.                  Pause?  No
  3312.                  Prompt?  No
  3313.                  Run filter?  Always
  3314.                  Filter:  FERROR.EXE
  3315.                  Filter options:  %1
  3316.  
  3317.             Tool #3 <AltD>:
  3318.  
  3319.                  Menu name:  Debugger
  3320.                  Program name:  TD.EXE
  3321.                  Primary extension:
  3322.                  Alternate extension:
  3323.                  Options:  %B%N
  3324.                  Compiler?  No
  3325.                  Run project?  Ask
  3326.                  Pause?  No
  3327.                  Prompt?  Yes
  3328.                  Run filter?  Never
  3329.                  Filter:
  3330.                  Filter options:
  3331.  
  3332.             Since Turbo Debugger is not a compiler, several of the fields
  3333.             are unused.  These are:  Run Filter, Filter, and Filter
  3334.             Options.  The installation program will not allow you to set
  3335.             any of these values when "Compiler?" is NO and will force
  3336.             default values into these fields.
  3337.  
  3338.             Tool #4 <AltP>:
  3339.  
  3340.                  Menu name:  pRofiler
  3341.                  Program name:  TPROF.EXE
  3342.                  Primary extension:
  3343.                  Alternate extension:
  3344.                  Options:  %B%N
  3345.                  Compiler?  No
  3346.                  Run project?  Ask
  3347.                  Pause?  No
  3348.                  Prompt?  Yes
  3349.                  Run filter?  Never
  3350.                  Filter:
  3351.                  Filter options:
  3352.  
  3353.             The first capital letter is used for the menu hotkey, in this
  3354.             case 'R'.  This is to avoid conflict with the Project command.
  3355.  
  3356.  
  3357.  
  3358.  
  3359.           Page 54                          Chapter 21. Programming Commands
  3360.  
  3361.  
  3362.  
  3363.  
  3364.  
  3365.  
  3366.             If you have MASM 5.x instead of TASM you should change the Tool
  3367.             2 settings to:
  3368.  
  3369.                  Menu name:  Assemble
  3370.                  Program name:  MASM.EXE
  3371.                  Primary extension:  ASM
  3372.                  Alternate extension:
  3373.                  Options:  /T %1;
  3374.                  Compiler?  Yes
  3375.                  Run project?  No
  3376.                  Pause?  No
  3377.                  Prompt?  No
  3378.                  Run filter?  Always
  3379.                  Filter:  FERROR.EXE
  3380.                  Filter options:  %1
  3381.  
  3382.             Note the %1 under OPTIONS.  This is to indicate to Unity where
  3383.             to place the name of the file.  You could also place multiple
  3384.             %1 codes in the options line such as '/T %1 %1 ;'.  The
  3385.             pseudo-variables that are supported are:
  3386.  
  3387.             %1          The full path, filename, and extension of the file,
  3388.                         e.g. "C:\SOURCE\MYPROG.PAS*".  When used in
  3389.                         "Filters Options" it is replaced by the filename of
  3390.                         the file containing the error messages (ERR.$$$ by
  3391.                         default).
  3392.             %2          Only used for "Filter Options".  It is replaced by
  3393.                         the filename of the source code file that was
  3394.                         compiled/assembled.  When a compile is executed
  3395.                         from a project file command line options are also
  3396.                         passed along, to separate the filename from the
  3397.                         command line options it is assumed that the
  3398.                         filename is the last item on the command line
  3399.                         (separated by spaces).  This may not be correct in
  3400.                         all cases.  I am currently researching alternatives
  3401.                         to this system.
  3402.             %B          The pathname of the current file with a backslash
  3403.                         if required, e.g. "C:\STUFF\"
  3404.             %D          The filename (no path or extension) of the primary
  3405.                         file.  If a primary file has not been specified the
  3406.                         filename of the current file will be used.
  3407.             %E          Just the extension of the current filename without
  3408.                         the preceding period, e.g. "PAS"
  3409.             %F          The name and extension of the file, without the
  3410.                         path, e.g. "MYPROG.PAS"
  3411.             %N          Only the name of the current file, e.g. "MYPROG"
  3412.             %P          The path of the current file, e.g. "C:\SOURCE"
  3413.             %%          Indicates to place a single % character in that
  3414.                         position.
  3415.  
  3416.             When a program is compiled or assembled all files loaded into
  3417.             the editor that have been modified will be saved.  When the
  3418.             compiler or assembler is run the standard output is redirected
  3419.             into a file.
  3420.  
  3421.  
  3422.  
  3423.           Chapter 21. Programming Commands                          Page 55
  3424.  
  3425.  
  3426.  
  3427.  
  3428.  
  3429.  
  3430.             After completion of the compile/assemble, the filter program is
  3431.             execute (if required) to convert the output of the
  3432.             compiler/assembler to the format Unity understands.
  3433.  
  3434.             If any errors were detected the first error message is
  3435.             displayed in a window and the cursor is moved to the the
  3436.             offending line.  The offending file will "ZOOMED" to fill the
  3437.             screen.
  3438.  
  3439.             A program installed as a tool doesn't necessarily need to be a
  3440.             compiler type tool to be treated as one.  Included in the
  3441.             auto-installation database is a GREP.  While this is certainly
  3442.             not a compiler it is configured as one to provide a useful
  3443.             function to the environment.  When GREP is executed (you are
  3444.             prompted for a command line) the redirected output is filtered
  3445.             by GFILT.EXE so that you can use the error-detection and line-
  3446.             jumping feature of Unity to move to files and lines containing
  3447.             the desired text.  This provides a text search facility that
  3448.             can do regular expression searches across multiple files.  Thus
  3449.             if you are making a change that can affect many different files
  3450.             in your program the search for the text to change is
  3451.             simplified.
  3452.  
  3453.           Execute                                                     Alt-E
  3454.             Forces the extension EXE or COM onto the primary file name or
  3455.             the current file name (if no primary file) and executes it.  If
  3456.             the file has been modified since the last save or compile or if
  3457.             the last compile was unsuccessful, you will be asked if you
  3458.             wish to recompile (Project) before running the program.
  3459.  
  3460.             You are given a chance to change the command line options
  3461.             passed to this program.
  3462.  
  3463.           Build all
  3464.             Causes all files listed in a project file to be treated as out
  3465.             of date.  This results in all commands listed to be executed,
  3466.             except for commands skipped due to conditional project commands
  3467.             (see #IFDEF and #IFNDEF).
  3468.  
  3469.           Symbols
  3470.             Allows you to define symbols and string macros to be used in
  3471.             the processing of a project file without having to modify the
  3472.             project file.  Multiple symbols may be defined by separating
  3473.             them by spaces.  See the project file chapter for additional
  3474.             information and examples.  See also #VAR on page 63.
  3475.  
  3476.  
  3477.  
  3478.  
  3479.  
  3480.  
  3481.  
  3482.  
  3483.  
  3484.  
  3485.  
  3486.  
  3487.           Page 56                          Chapter 21. Programming Commands
  3488.  
  3489.  
  3490.  
  3491.  
  3492.  
  3493.  
  3494.  
  3495.  
  3496.  
  3497.                                  Chapter Twenty-Two
  3498.  
  3499.                                  Programming Options
  3500.  
  3501.  
  3502.           Set Tool Options
  3503.             Sets the command line options for the programming tool.  The
  3504.             changes remain in effect until you quit the editor.  If you
  3505.             wish to make permanent changes to the tool options you may do
  3506.             so with installation program or by using the Save Options
  3507.             command.
  3508.  
  3509.           Set Autosave Timer
  3510.             You can have the editor automatically save your work at
  3511.             intervals by setting this timer to the number of minutes
  3512.             between saves you you wish.  If the timer is set to zero (0) it
  3513.             is disabled.  The timer does not start until a change has been
  3514.             made in one of the files loaded into the editor.  Once the
  3515.             timer has come due, the files will not be saved until there is
  3516.             at least 30 seconds of keyboard inactivity to avoid
  3517.             interferring with your editing.
  3518.  
  3519.           Set Primary File                                           <AltF>
  3520.             Sets the name of the primary file to use when compiling,
  3521.             assembling, or running a tool.
  3522.  
  3523.           Make Current File Primary                                  <AltH>
  3524.             Makes the active file the primary file.  Using this command, a
  3525.             simple macro can be created to automatically update a program
  3526.             from the command line, returning to the command line upon
  3527.             successful completion or positioning properly in the editor if
  3528.             an error is encountered:
  3529.  
  3530.                  <AltH><F9><AltQ>
  3531.  
  3532.             This short macro is simple: make the current file the primary
  3533.             file, run the project utility, and exit.  Since macros are
  3534.             always canceled if an error occurs, the <AltQ> command will be
  3535.             skipped if a compiler error occurs.  To invoke this macro from
  3536.             the command line indicate the project file name (or main source
  3537.             file name) and use the /# command, where # is the macro number,
  3538.             e.g.:
  3539.  
  3540.                  UNITY /7 DATABASE.PJU
  3541.  
  3542.           Next Error File                                          <CtrlF5>
  3543.             Moves to the next file containing errors from the last compile
  3544.             or assemble.
  3545.  
  3546.  
  3547.  
  3548.  
  3549.  
  3550.  
  3551.           Chapter 22. Programming Commands                          Page 57
  3552.  
  3553.  
  3554.  
  3555.  
  3556.  
  3557.  
  3558.           Next Error                                                   <F5>
  3559.             Move to the next line containing an error.  If no more errors
  3560.             are found in the current file a check will be made for errors
  3561.             in other files already in memory.  Files with errors that are
  3562.             not already active in Unity will NOT be checked.  See also Next
  3563.             Error File.
  3564.  
  3565.           Previous Error                                               <F4>
  3566.             Move to the previous line containing an error.  If no more
  3567.             errors are found in the current file a check will be made for
  3568.             errors in other files already in memory.  Files with errors
  3569.             that are not already active in Unity will NOT be checked.  See
  3570.             also Next Error File.
  3571.  
  3572.  
  3573.  
  3574.  
  3575.  
  3576.  
  3577.  
  3578.  
  3579.  
  3580.  
  3581.  
  3582.  
  3583.  
  3584.  
  3585.  
  3586.  
  3587.  
  3588.  
  3589.  
  3590.  
  3591.  
  3592.  
  3593.  
  3594.  
  3595.  
  3596.  
  3597.  
  3598.  
  3599.  
  3600.  
  3601.  
  3602.  
  3603.  
  3604.  
  3605.  
  3606.  
  3607.  
  3608.  
  3609.  
  3610.  
  3611.  
  3612.  
  3613.  
  3614.  
  3615.           Page 58                           Chapter 22. Programming Options
  3616.  
  3617.  
  3618.  
  3619.  
  3620.  
  3621.  
  3622.  
  3623.  
  3624.  
  3625.                                 Chapter Twenty-Three
  3626.  
  3627.                                Miscellaneous Commands
  3628.  
  3629.  
  3630.           Activate Menus                                              <F10>
  3631.             Activates Unity's menu system.
  3632.  
  3633.           Abort                                                     <CtrlU>
  3634.             Halts an operation in progress.  The keyboard buffer is checked
  3635.             regularly to see if the Abort command has been issued; if it
  3636.             has, the buffer is emptied, macro execution or recording is
  3637.             turned off, and the operation is stopped.  This command must
  3638.             not be assigned to a multiple byte key sequence for it to work
  3639.             properly.
  3640.  
  3641.           Undo Last Deletion                                 <CtrlQ><CtrlU>
  3642.             Restores whole lines deleted with the delete-line command
  3643.             (CtrlY) or the delete-block command (<CtrlK> Y).  It does not
  3644.             restore single characters or words.  To undo your most recent
  3645.             changes to the current line, use the restore-line command
  3646.             (CtrlQ L).  The size of the "undo buffer" is specified with the
  3647.             set-undo-limit command.
  3648.  
  3649.           Restore Line                                       <CtrlQ><CtrlL>
  3650.             Will undo any changes made to a line of text as long as you
  3651.             have not left the line.  The line is restored to its previous
  3652.             contents regardless of the changes made.
  3653.  
  3654.  
  3655.  
  3656.  
  3657.  
  3658.  
  3659.  
  3660.  
  3661.  
  3662.  
  3663.  
  3664.  
  3665.  
  3666.  
  3667.  
  3668.  
  3669.  
  3670.  
  3671.  
  3672.  
  3673.  
  3674.  
  3675.  
  3676.  
  3677.  
  3678.  
  3679.           Chapter 23. Programming Options                           Page 59
  3680.  
  3681.  
  3682.  
  3683.  
  3684.  
  3685.  
  3686.  
  3687.  
  3688.  
  3689.  
  3690.  
  3691.  
  3692.  
  3693.  
  3694.  
  3695.  
  3696.  
  3697.  
  3698.  
  3699.  
  3700.  
  3701.  
  3702.  
  3703.  
  3704.  
  3705.  
  3706.  
  3707.  
  3708.  
  3709.  
  3710.  
  3711.  
  3712.  
  3713.  
  3714.  
  3715.  
  3716.  
  3717.  
  3718.  
  3719.  
  3720.  
  3721.  
  3722.  
  3723.  
  3724.  
  3725.  
  3726.  
  3727.  
  3728.  
  3729.  
  3730.  
  3731.  
  3732.  
  3733.  
  3734.  
  3735.  
  3736.  
  3737.  
  3738.  
  3739.  
  3740.  
  3741.  
  3742.  
  3743.           Page 60                        Chapter 23. Miscellaneous Commands
  3744.  
  3745.  
  3746.  
  3747.  
  3748.  
  3749.  
  3750.  
  3751.  
  3752.  
  3753.                                  Chapter Twenty-Four
  3754.  
  3755.                                        Project
  3756.  
  3757.  
  3758.           Probably the most powerful feature of this editor is its built in
  3759.           project (known as MAKE in some circles) capability.
  3760.  
  3761.           To use the project feature you must create a dependency file with
  3762.           the extension PJU.  This is a text file (you can create it with
  3763.           Unity) with a very simple format:
  3764.  
  3765.                Target1 [target2 : ] dependency list ...
  3766.                     command1
  3767.                     [command2]
  3768.                     .
  3769.                     .
  3770.                     .
  3771.  
  3772.           The first filename listed on a line is the file you wish to see
  3773.           if it is up to date.  If you wish to list two target files you
  3774.           must place a color ':' after the second file name (the color must
  3775.           have a space character on both sides).  The colon is optional if
  3776.           there is only one target file.
  3777.  
  3778.           Unity allows two target file names to support compilers that
  3779.           produce two target files with a single compiler execution.  For
  3780.           example, Oberon-M produces an OBJ and REF file for each module.
  3781.           Ada and Modula 2 are additional examples of compilers that
  3782.           usually produce two target files.
  3783.  
  3784.           Any file names that follow the target file name(s) (all filenames
  3785.           are separated by spaces, commas, tabs, or the '+' character) are
  3786.           files that the target file(s) depend upon.  For example, if you
  3787.           have a unit (or module) called TEST.TPU from the source file
  3788.           TEST.PAS that uses SCREEN.TPU and STUFF.INC you would list it as:
  3789.  
  3790.                TEST.TPU TEST.PAS SCREEN.TPU STUFF.INC
  3791.                OTHER.TPU,EXAMPLE.PAS
  3792.  
  3793.           The dates of the first file is compared to all the files that
  3794.           follow.  If it is older than at least one of the listed files or
  3795.           if it does not exist it is out of date and must be processed.
  3796.  
  3797.           If your dependency list is large you can break it across multiple
  3798.           lines by placing the "+" character at the end of a list you wish
  3799.           continued on the next line:
  3800.  
  3801.                TEST.TPU : TEST.PAS SCREEN.TPU +
  3802.                     STUFF.INC
  3803.  
  3804.  
  3805.  
  3806.  
  3807.           Chapter 24. Project                                       Page 61
  3808.  
  3809.  
  3810.  
  3811.  
  3812.  
  3813.  
  3814.           This is functionally equivelent to the previous example.  The "+"
  3815.           character MUST be preceded by at least one space or it will be
  3816.           confused as a filename separator.  Comment lines may NOT be
  3817.           placed between dependency list lines.  The following is illegal:
  3818.  
  3819.                TEST.TPU TEST.PAS SCREEN.TPU +
  3820.                # More stuff
  3821.                     STUFF.INC
  3822.  
  3823.           The command(s) used to process must be on the lines IMMEDIATELY
  3824.           following the dependency line (you can place the comment
  3825.           character '#' between them if you wish more white-space).  You
  3826.           specify the command to execute with its MENU name followed by the
  3827.           command line you wish to pass to the program, which should
  3828.           normally include the source code file name or a response
  3829.           filename, e.g.:
  3830.  
  3831.                COMPILE /M TEST.PAS
  3832.  
  3833.           You may specify as many command lines as you wish, delimiting the
  3834.           end of the list with a blank line:
  3835.  
  3836.                ASSEMBLE TEST.ASM
  3837.                COMPILE /M TEST.PAS
  3838.  
  3839.           Comment lines (lines beginning with "# " will not terminate the
  3840.           command list so you can properly document your project files with
  3841.           comments in the proper locations.
  3842.  
  3843.           A complete dependency list and command might look like this:
  3844.  
  3845.                TEST.TPU TEST.PAS
  3846.                     COMPILE /V TEST.PAS
  3847.  
  3848.           The syntax for a two target file dependency is almost identical:
  3849.  
  3850.                TEST.OBJ TEST.REF : TEST.MOD
  3851.                     OBERON TEST.MOD DEF
  3852.  
  3853.           The options that you installed for the compiler (with UINST) will
  3854.           be ignored.  You must specify any command line options that are
  3855.           needed to properly compile or assembler the file.
  3856.  
  3857.           If the file is up to date, the processing of all lines will be
  3858.           skipped up to the first blank line.  All leading and trailing
  3859.           spaces are stripped from lines before processing.
  3860.  
  3861.           If the menu name you have chosen for one of your tools contains
  3862.           any imbedded spaces you must use an underscore character instead,
  3863.           e.g. Turbo_Pascal.
  3864.  
  3865.           For an example of project files see SIMPLE.PJU and COMPLEX.PJU.
  3866.  
  3867.  
  3868.  
  3869.  
  3870.  
  3871.           Page 62                                       Chapter 24. Project
  3872.  
  3873.  
  3874.  
  3875.  
  3876.  
  3877.  
  3878.           24.1  Project File Commands
  3879.  
  3880.  
  3881.           There are several special commands that are allowed in the
  3882.           project file all of these begin with the '#' character (which
  3883.           must be the first nonspace character on the line):
  3884.  
  3885.             #         This character followed by at least one space denotes
  3886.                       a comment.  The line will be ignored.
  3887.  
  3888.             #EXECUTE  Executes the compiler command without checking for
  3889.                       dependencies.  This is useful if you always want a
  3890.                       command executed.  Follow the directive with the menu
  3891.                       name and options you wish:
  3892.  
  3893.                            #EXECUTE COMPILE /V MAIN.PAS
  3894.  
  3895.             #SHELL    Executes a program that is not installed as a tool in
  3896.                       Unity.  If the #SHELL command is not part of a
  3897.                       dependency command list it will be executed
  3898.                       automatically each time you process the project file.
  3899.                       If an error occurs there will be no line number
  3900.                       detection, although processing of the project file
  3901.                       will halt:
  3902.  
  3903.             #WINDOW   Same as the #SHELL command, except the execution will
  3904.                       occur within the a window (or on the secondary
  3905.                       screen).  The executed program must send its output
  3906.                       to the Standard Output Device or the Standard Error
  3907.                       Device or use standard BIOS functions for the display
  3908.                       to be properly contained within the execution window.
  3909.                       If the program writes directly to screen memory it
  3910.                       may bleed into the editor screen, though Unity will
  3911.                       update the screen upon completion of the execution.
  3912.                       Programs that write directly to the screen can be run
  3913.                       safely if a second monitor is installed and the Dual
  3914.                       Display mode is enabled.
  3915.  
  3916.             #VAR      Defines a variable for use in string expansion. This
  3917.                       allows you to define a string at the start of a
  3918.                       project file and have it automatically inserted in
  3919.                       the proper locations.  The variable name is limited
  3920.                       to 8 characters and the string used for expansion is
  3921.                       limited to 67 characters.  A string is limited to 255
  3922.                       characters after macro expansion.  If a dependency
  3923.                       list line might exceed this limit you should break up
  3924.                       the list using the "+" character (see example on page
  3925.                       61).
  3926.  
  3927.                       Often used macros can be defined in the DOS
  3928.                       environment.  For example, at the DOS prompt enter:
  3929.  
  3930.                            SET $(asm)=assembler /m %%B%%N
  3931.  
  3932.  
  3933.  
  3934.  
  3935.           Chapter 24. Project                                       Page 63
  3936.  
  3937.  
  3938.  
  3939.  
  3940.  
  3941.  
  3942.                       Note that two '%' characters must be entered where
  3943.                       you wish a single '%'.  This is to prevent the
  3944.                       character from being stripped out by the DOS command
  3945.                       interpreter.  The environment is checked after the
  3946.                       internal macro table so they can be overridden by the
  3947.                       project file or from the Program/Options menu.
  3948.  
  3949.                       You can also define a string macro from the
  3950.                       Program/Symbols menu choice.  Simply enter the
  3951.                       definition without the #VAR statement, e.g.
  3952.                       BASE=MYFILE.  You should never use an equal character
  3953.                       (=) in a symbol as that is how macro definitions are
  3954.                       detected.
  3955.  
  3956.                       Examples of #VAR statements.
  3957.  
  3958.                       To define the path for assembler files:
  3959.  
  3960.                                 #VAR lib=c:\lib\
  3961.  
  3962.                       Then to use the string macro:
  3963.  
  3964.                                 $(lib)VIDEO.OBJ $(lib)video.asm
  3965.                                   assemble /m $(lib)video $(lib)video
  3966.  
  3967.                       The previous two lines would be expanded to:
  3968.  
  3969.                                 C:\LIB\VIDEO.OBJ c:\lib\video.asm
  3970.                                   assemble /m c:\lib\video c:\lib\video
  3971.  
  3972.                       This feature makes it easy to pass a project file to
  3973.                       someone else and be able to use it with only a minor
  3974.                       modification should their system configuration be
  3975.                       different from yours.
  3976.  
  3977.                       If you forget to assign a value to a $(name) variable
  3978.                       it will not be expanded, and the project file
  3979.                       processing will halt with an error.  If you wish to
  3980.                       assign an empty string to a variable simply leave off
  3981.                       the portion after the '=' character:
  3982.  
  3983.                                 #VAR lib=
  3984.  
  3985.                       String expansion occurs before any other processing
  3986.                       of the stirng, so you can even use it with internal
  3987.                       project file commands or to change the way commands
  3988.                       work:
  3989.  
  3990.                                 #VAR asm=assemble /m/dshareware
  3991.  
  3992.                                 $(asm) video
  3993.  
  3994.                       This would be expanded to:
  3995.  
  3996.  
  3997.  
  3998.  
  3999.           Page 64                                       Chapter 24. Project
  4000.  
  4001.  
  4002.  
  4003.  
  4004.  
  4005.  
  4006.                                   assemble /m/dshareware video
  4007.  
  4008.                       Avoid creating macros that cause an infinite loop
  4009.                       which will lock up the system, requiring a reboot:
  4010.  
  4011.                                      #VAR obj=$(lib)
  4012.                                      #VAR lib=$(obj)
  4013.  
  4014.                       The command line variable options used when defining
  4015.                       the command line with UINST may also be used.  These
  4016.                       are indentical in definition as described on page 55,
  4017.                       with one addition (see below), except %1 refers to
  4018.                       the first target file name and %2 refers to the
  4019.                       second (if defined).  All subsets, such as %N, refer
  4020.                       to the first target filename.
  4021.  
  4022.                       This dependency will produce the following variables:
  4023.  
  4024.                                 C:\PASCAL\MODULE.OBJ c:\pascal\module.asm
  4025.  
  4026.                                 %N = MODULE
  4027.                                 %1 = C:\PASCAL\MODULE.OBJ
  4028.                                 %B = C:\PASCAL\
  4029.  
  4030.                       You can nest variable definitions:
  4031.  
  4032.                                 #VAR asm=assemble %B%N %1
  4033.                                 #VAR lib=c:\obj\
  4034.  
  4035.                                 $(lib)STUFF.OBJ %B%N.asm
  4036.                                   $(asm)
  4037.  
  4038.                       This is fully expanded to:
  4039.  
  4040.                                 C:\OBJ\STUFF.OBJ c:\obj\stuff.asm
  4041.                                   assemble c:\obj\stuff c:\obj\stuff.obj
  4042.  
  4043.                       There is an additional variable available only in
  4044.                       project dependency files:
  4045.  
  4046.             %L          This is replaced by the entire dependency list
  4047.                         (target file(s) not included.
  4048.  
  4049.                       This variable is particularly useful when linking
  4050.                       programs:
  4051.  
  4052.                                 STUFF.EXE : stuff.obj parse.obj file.obj
  4053.                                   link %L, %1;
  4054.  
  4055.                       The link command is expanded to:
  4056.  
  4057.                                   link stuff.obj parse.obj file.obj, stuff.exe;
  4058.  
  4059.  
  4060.  
  4061.  
  4062.  
  4063.           Chapter 24. Project                                       Page 65
  4064.  
  4065.  
  4066.  
  4067.  
  4068.  
  4069.  
  4070.                       One note of caution.  Internally, the dependency list
  4071.                       can not exceed 127 characters.  While parsing the
  4072.                       project file each group of dependencies will be
  4073.                       stored as a single string even if they are broken up
  4074.                       with the '+' directive.  If the line exceeds 127
  4075.                       characters part of the list will be lost, possibly
  4076.                       resulting in an incomplete link or some other error.
  4077.                       Note that DOS is also limited to 127 characters for
  4078.                       the command line and other data on a final command
  4079.                       line could bring the string length past this limit.
  4080.  
  4081.             #DEFINE   Defines a symbol that is used with the conditional
  4082.                       project commands #IFDEF and #IFNDEF.  If no symbols
  4083.                       are specified then all symbols will be undefined.
  4084.                       There is a limit of 10 symbols of up to 10 characters
  4085.                       each.  Case is ignored.
  4086.  
  4087.             #UNDEFINE Undefines the symbol(s) specified.
  4088.  
  4089.             #IFDEF    If the symbol(s) is defined the commands up to the
  4090.                       #ELSE or #ENDIF are executed.  If the symbol(s) is
  4091.                       not defined it will skip to the #ELSE or #ENDIF
  4092.                       statement before continuing to process commands.
  4093.                       Nested #IF commands are not allowed.
  4094.  
  4095.             #IFNDEF   If the symbol is not defined the commands up to the
  4096.                       #ELSE or #ENDIF are executed.  If the symbol is
  4097.                       defined it will skip to the #ELSE or #ENDIF statement
  4098.                       before continuing to process commands.  Nested #IF
  4099.                       commands are not allowed.
  4100.  
  4101.             #ELSE     Used in conjunction with the #IFDEF and #IFNDEF
  4102.                       commands.  This command is optional.
  4103.  
  4104.             #ELSEIF   Ends a set of commands grouped by the #IFDEF or
  4105.                       #IFNDEF command and begins a new #IFDEF command.  You
  4106.                       must follow this command by at least one symbol name.
  4107.                       See also #IFDEF.
  4108.  
  4109.             #ENDIF    Signifies the end of a conditional project block.
  4110.  
  4111.             #NOWARN   A search for error messages will only be made if an
  4112.                       explicit nonzero return code was detected.  This
  4113.                       enables you to pass files that may have acceptable
  4114.                       warning messages even though the compiler/assembler
  4115.                       is configured to always scan for error messages.  Use
  4116.                       special care with this command to avoid undetected
  4117.                       error messages.
  4118.  
  4119.             #WARN     Cancels the #NOWARN directive.  Normal error
  4120.                       processing will be done.
  4121.  
  4122.             #BUILDON  Causes all subsequent files to be treated as if they
  4123.                       were out of date.
  4124.  
  4125.  
  4126.  
  4127.           Page 66                                       Chapter 24. Project
  4128.  
  4129.  
  4130.  
  4131.  
  4132.  
  4133.  
  4134.             #BUILDOFF Returns to the default mode of testing file dates to
  4135.                       decide if a recompile is in order.
  4136.  
  4137.                # Turn off warning messages
  4138.  
  4139.                #NOWARN
  4140.  
  4141.                LOWSTUFF.OBJ lowstuff.asm
  4142.                  assemble lowstuff.asm
  4143.  
  4144.                # Turn warning messages back on.  Note the blank line after
  4145.                # the assemble command.  This is to prevent skipping of the
  4146.                # #WARN directive if the file is up to date.
  4147.  
  4148.                #WARN
  4149.  
  4150.                #IFDEF demo
  4151.                DEMO.TPU demo.pas
  4152.                  compile demo.pas
  4153.                #ENDIF
  4154.  
  4155.                # The following file is dependent upon the previous modules
  4156.                # created in this project file as well as a new source file.
  4157.  
  4158.                MYPROG.EXE myprog.pas demo.tpu lowstuff.obj
  4159.                #IFDEF demo
  4160.                  compile /ddemo myprog.pas
  4161.                #ELSE
  4162.                  compile myprog.pas
  4163.                #ENDIF
  4164.  
  4165.  
  4166.           24.2  Inference Rules
  4167.  
  4168.  
  4169.           Also supported are inference rules.  Inference rules automate a
  4170.           list of commands for a given pair of extensions in the project
  4171.           file if a command list is not found immediately after the
  4172.           dependency list.
  4173.  
  4174.           The syntax is :
  4175.  
  4176.                .targetextension.sourceextension
  4177.                     command1
  4178.                     [command2]
  4179.                     .
  4180.                     .
  4181.                     .
  4182.  
  4183.           For example:
  4184.  
  4185.                .OBJ.ASM
  4186.                  assemble /m %B%N, %1
  4187.  
  4188.  
  4189.  
  4190.  
  4191.           Chapter 24. Project                                       Page 67
  4192.  
  4193.  
  4194.  
  4195.  
  4196.  
  4197.  
  4198.                test1.obj : test1.asm stuff.inc
  4199.  
  4200.                test2.obj : test2.asm stuff.inc
  4201.                  assemble /zd test2
  4202.  
  4203.           This example will execute the single command "compile /m
  4204.           test1.asm, test1.obj" (after macro expansion) if test1.obj  is
  4205.           found to be out of date.  The pseudo-variable %B%N and %1 were
  4206.           used in the inference rule so that the filename of the active
  4207.           file would be used.  For the second dependency, test2.obj, the
  4208.           inference rule will not be used since it includes an explicite
  4209.           command.
  4210.  
  4211.           The command list for an inference rule must be terminated with a
  4212.           blank line.  Multiple commands are allowed in an inference rule.
  4213.           There is a limit of 10 inference rules in a project file.
  4214.  
  4215.  
  4216.  
  4217.  
  4218.  
  4219.  
  4220.  
  4221.  
  4222.  
  4223.  
  4224.  
  4225.  
  4226.  
  4227.  
  4228.  
  4229.  
  4230.  
  4231.  
  4232.  
  4233.  
  4234.  
  4235.  
  4236.  
  4237.  
  4238.  
  4239.  
  4240.  
  4241.  
  4242.  
  4243.  
  4244.  
  4245.  
  4246.  
  4247.  
  4248.  
  4249.  
  4250.  
  4251.  
  4252.  
  4253.  
  4254.  
  4255.           Page 68                                       Chapter 24. Project
  4256.  
  4257.  
  4258.  
  4259.  
  4260.  
  4261.  
  4262.  
  4263.  
  4264.  
  4265.                                      Appendix A
  4266.  
  4267.                             Creating Custom Error Filters
  4268.  
  4269.  
  4270.           To make Unity as versatile as possible an external program is
  4271.           required to parse the screen output (which is redirected to a
  4272.           file) of each compiler.  FERROR.EXE is included with Unity which
  4273.           scans for errors in the output of Turbo Pascal, Turbo Assembler,
  4274.           Turbo C++, Microsoft MASM 5.1, and QuickByte Pascal (the type is
  4275.           automatically detected) as well as most other Microsoft
  4276.           compilers.  A86ERROR.EXE is also supplied which filters the error
  4277.           messages for the A86 assembler.  Alternately, you can use an AWK
  4278.           program and corresponding AWK script to scan for errors.
  4279.  
  4280.           Unity was tested with AWK 3.00, written by Rob Duff.  This
  4281.           program is readily available from a your local computer BBS.
  4282.           Besides being a full implementation of AWK, it is a completely
  4283.           free program!  Commercial AWK programs should work with the
  4284.           included AWK program files but none have been tested.
  4285.  
  4286.           The error filter can be a compiled program or an AWK script.  The
  4287.           advantage of a compiled program over an AWK script processor is
  4288.           simple . . . speed.  AWK script processing tends to be a bit on
  4289.           the sluggish side.  Because, however, AWK is such a versatile
  4290.           programming "language" it is fully supported in Unity.
  4291.  
  4292.           Four awk files are supplied, TPC.AWK which is used to find errors
  4293.           in Turbo Pascal programs; TASM.AWK which locates errors in Turbo
  4294.           Assembler programs; MASM.AWK which is designed for Microsoft's
  4295.           Macro Assembler version 5.x; and REALCOB.AWK for use with Realia
  4296.           Cobol.  You can customize Unity for a different compiler or
  4297.           assembler by creating your own filter program or AWK script .
  4298.           Unity expects the output of the program to be sent to the
  4299.           Standard Output Device (the screen) and to be in the following
  4300.           format:
  4301.  
  4302.                FileName, LineNumber, ColumnNumber, ErrorMessage
  4303.  
  4304.           FileName is the name of the file the error occurred in.  If it is
  4305.           unknown leave it blank but don't forget the comma.
  4306.  
  4307.           LineNumber is the line that the error occurred on.  If it is
  4308.           unknown output a 0 or 1.
  4309.  
  4310.           ColumnNumber is the column where the error occurred. Again, if it
  4311.           is unknown use 0 or 1.
  4312.  
  4313.           ErrorMessage is the error message that the compiler or assembler
  4314.           output.  If it is unknown pass something like "Unknown error".
  4315.  
  4316.  
  4317.  
  4318.  
  4319.           Appendix A. Creating Custom Error Filters                 Page 69
  4320.  
  4321.  
  4322.  
  4323.  
  4324.  
  4325.  
  4326.           Examples:
  4327.  
  4328.                THISPROG.PAS, 23, 45, Error 36: BEGIN expected.
  4329.  
  4330.                MYSTUFF.ASM, 5, 0, **Error** Undefined symbol: Du
  4331.                MYSTUFF.ASM, 11, 0, *Warning* Extra characters on line.
  4332.                MYSTUFF.ASM, 28, 0, **Fatal** Unexpected end of file encountered.
  4333.  
  4334.           Since Turbo Assembler does not detect the column number the last
  4335.           three examples return 0.
  4336.  
  4337.           Unity will jump to the the line and column in the file indicated
  4338.           by the first error record it finds.  If line number is unknown
  4339.           the cursor will be placed on the first line.  If the column is
  4340.           unknown the cursor will be placed at the start of the line.
  4341.  
  4342.           The source code for FERROR.EXE is provided.  It is written in
  4343.           Turbo Pascal 5.5 and requires no additional units other than the
  4344.           DOS unit which is provided with TP.  If you find you must create
  4345.           your own error filter you may wish to use FERROR as an example or
  4346.           to modify it if your compiler is similar to one already
  4347.           supported.  The programs currently supported by FERROR are:
  4348.  
  4349.                Turbo Pascal 5.x
  4350.                Turbo Assembler
  4351.                Turbo C++ (may not be complete)
  4352.                Turbo Linker
  4353.                QuikByte Pascal & Linker
  4354.                Microsoft Masm 5.x
  4355.  
  4356.           There is nothing requiring you to use a single program for all
  4357.           your error filtering.  The installation program (UINST) allows
  4358.           you to specify a different error filter for each separate
  4359.           compiler/assembler.
  4360.  
  4361.           Also included is GFILT.EXE.  This is a filter program for use
  4362.           with the GREP program included with many Borland languages.
  4363.           Although GREP is not a compiler it is being treated as one by
  4364.           Unity.  When GREP is executed from within the editor you are
  4365.           prompted to complete the command line.  You must enter the text
  4366.           to search for and the filename (or wildcard) to search.  After
  4367.           the search GFILT converts the output of GREP into the error
  4368.           message format.  Since Unity will treat the results the same as
  4369.           error messages you will be conveniently switched to the first
  4370.           file containing the found text and positioned at the beginning of
  4371.           the proper line.  You can then use the Find Next Error (F5) or
  4372.           Find Previous Error (F4) keys to jump from location to location.
  4373.  
  4374.           If you use a different GREP program you may need to modify the
  4375.           installation of GREP (specifically, the command line options) and
  4376.           possibly create your own filter program.
  4377.  
  4378.  
  4379.  
  4380.  
  4381.  
  4382.  
  4383.           Page 70                 Appendix A. Creating Custom Error Filters
  4384.  
  4385.  
  4386.  
  4387.  
  4388.  
  4389.  
  4390.           Currently being written, but not yet complete, are error filters
  4391.           for Zortec C++, Clipper, and Oberon-M.  The Turbo C++ error
  4392.           filtering is also being improved.
  4393.  
  4394.           If you wish to create your own tool for use with Unity you should
  4395.           have it output error messages and information in the same format
  4396.           the filters convert to.  Select NEVER for the "Run Error Filter"
  4397.           option as well.  This will greatly improve performance since the
  4398.           filtering step can be skipped entirely.
  4399.  
  4400.  
  4401.  
  4402.  
  4403.  
  4404.  
  4405.  
  4406.  
  4407.  
  4408.  
  4409.  
  4410.  
  4411.  
  4412.  
  4413.  
  4414.  
  4415.  
  4416.  
  4417.  
  4418.  
  4419.  
  4420.  
  4421.  
  4422.  
  4423.  
  4424.  
  4425.  
  4426.  
  4427.  
  4428.  
  4429.  
  4430.  
  4431.  
  4432.  
  4433.  
  4434.  
  4435.  
  4436.  
  4437.  
  4438.  
  4439.  
  4440.  
  4441.  
  4442.  
  4443.  
  4444.  
  4445.  
  4446.  
  4447.           Appendix A. Creating Custom Error Filters                 Page 71
  4448.  
  4449.  
  4450.  
  4451.  
  4452.  
  4453.  
  4454.  
  4455.  
  4456.  
  4457.  
  4458.  
  4459.  
  4460.  
  4461.  
  4462.  
  4463.  
  4464.  
  4465.  
  4466.  
  4467.  
  4468.  
  4469.  
  4470.  
  4471.  
  4472.  
  4473.  
  4474.  
  4475.  
  4476.  
  4477.  
  4478.  
  4479.  
  4480.  
  4481.  
  4482.  
  4483.  
  4484.  
  4485.  
  4486.  
  4487.  
  4488.  
  4489.  
  4490.  
  4491.  
  4492.  
  4493.  
  4494.  
  4495.  
  4496.  
  4497.  
  4498.  
  4499.  
  4500.  
  4501.  
  4502.  
  4503.  
  4504.  
  4505.  
  4506.  
  4507.  
  4508.  
  4509.  
  4510.  
  4511.           Page 72                 Appendix A. Creating Custom Error Filters
  4512.  
  4513.  
  4514.  
  4515.  
  4516.  
  4517.  
  4518.  
  4519.  
  4520.  
  4521.                                      Appendix B
  4522.  
  4523.                               Customizing The Help File
  4524.  
  4525.  
  4526.           Once you have decided which tools you will install into the
  4527.           editor you will probably want to customize the help text for each
  4528.           tool.  The file UNITY.TXT is the raw text file you must modify.
  4529.           When you make any changes with UINST the text file is
  4530.           automatically "compiled" to UNITY.HLP.
  4531.  
  4532.           There are a number of special commands available for use in the
  4533.           help file.  These are:
  4534.  
  4535.                    ^A          Start highlight text.
  4536.                    ^B          Start alternate highlighting.
  4537.                    ^C          End highlighting.
  4538.                    ^Fnn^F      Insert menu name for tool number nn.
  4539.                    ^Pnn        Insert primary key string for command nn.
  4540.                    ^S          Insert secondary key string for command nn.
  4541.                    @nn         Start help for topic nn - must be in first
  4542.                                column.
  4543.                    &           Center the text - must be in first column.
  4544.                                The text that follows will be highlighted
  4545.                                and centered.
  4546.                    )           Force new line - must be in first column.
  4547.                    ]           Force page break - must be in first column.
  4548.  
  4549.           To insert any of the control characters with Unity press ^P
  4550.           followed by the control character.
  4551.  
  4552.           Examples:
  4553.  
  4554.                Here is some text with ^Ahighlighting^C
  4555.                )This line will not be merged with the previous line.
  4556.                But his line will be merged with the previous line.
  4557.                ]
  4558.                This line will be on a new page.
  4559.                This line contains the name of tool #1:  ^F1^F
  4560.                Here's the primary keystring for command 1:  ^P1
  4561.                The secondary keystring for command 1: ^S1
  4562.                &^AThis is highlighted and centered^C
  4563.  
  4564.           Studying UNITY.TXT will help you understand how the formatting
  4565.           characters work.
  4566.  
  4567.  
  4568.  
  4569.  
  4570.  
  4571.  
  4572.  
  4573.  
  4574.  
  4575.           Appendix B. Customizing The Help File                     Page 73
  4576.  
  4577.  
  4578.  
  4579.  
  4580.  
  4581.  
  4582.  
  4583.  
  4584.  
  4585.  
  4586.  
  4587.  
  4588.  
  4589.  
  4590.  
  4591.  
  4592.  
  4593.  
  4594.  
  4595.  
  4596.  
  4597.  
  4598.  
  4599.  
  4600.  
  4601.  
  4602.  
  4603.  
  4604.  
  4605.  
  4606.  
  4607.  
  4608.  
  4609.  
  4610.  
  4611.  
  4612.  
  4613.  
  4614.  
  4615.  
  4616.  
  4617.  
  4618.  
  4619.  
  4620.  
  4621.  
  4622.  
  4623.  
  4624.  
  4625.  
  4626.  
  4627.  
  4628.  
  4629.  
  4630.  
  4631.  
  4632.  
  4633.  
  4634.  
  4635.  
  4636.  
  4637.  
  4638.  
  4639.           Page 74                     Appendix B. Customizing The Help File
  4640.  
  4641.  
  4642.  
  4643.  
  4644.  
  4645.  
  4646.  
  4647.  
  4648.  
  4649.                                      Appendix C
  4650.  
  4651.                                Running Under DESQview
  4652.  
  4653.  
  4654.           Unity was designed to be well behaved under DESQview.  Although
  4655.           direct screen writing is used for fast screen updates, a request
  4656.           is made to DESQview for an alternate video buffer.  Unity also
  4657.           makes it a point not to hog system resources.  Thus programs
  4658.           running in the background will be given control between every
  4659.           keystroke.  Since the computer runs much faster than anyone can
  4660.           type you will never notice this interruption.
  4661.  
  4662.           When you install Unity into DESQview it's best to give it as much
  4663.           convetional memory as possible and at least 384k of EMS or XMS.
  4664.           If you suffer an "Insufficient Memory" error when executing an
  4665.           external program such as a compiler you will need to increase the
  4666.           EMS/XMS allocation or enable disk swapping.
  4667.  
  4668.           DESQview does not handle nonstandard video modes very well.
  4669.           Therefore it is recommended that you limit yourself to the 25x80
  4670.           video mode.  If you use one of the other modes and activate
  4671.           DESQview, Unity's screen will be blanked.  When you return to
  4672.           Unity you can recover the screen by pressing any key such as one
  4673.           of the arrow keys.  This will cause Unity to completely update
  4674.           the screen unless the menu was active when you activated
  4675.           DESQview, in which case the screen will not be redrawn completely
  4676.           until you exit the menu (keep pressing ESC).
  4677.  
  4678.  
  4679.  
  4680.  
  4681.  
  4682.  
  4683.  
  4684.  
  4685.  
  4686.  
  4687.  
  4688.  
  4689.  
  4690.  
  4691.  
  4692.  
  4693.  
  4694.  
  4695.  
  4696.  
  4697.  
  4698.  
  4699.  
  4700.  
  4701.  
  4702.  
  4703.           Appendix C. Running Under DESQview                        Page 75
  4704.  
  4705.  
  4706.  
  4707.  
  4708.  
  4709.  
  4710.  
  4711.  
  4712.  
  4713.  
  4714.  
  4715.  
  4716.  
  4717.  
  4718.  
  4719.  
  4720.  
  4721.  
  4722.  
  4723.  
  4724.  
  4725.  
  4726.  
  4727.  
  4728.  
  4729.  
  4730.  
  4731.  
  4732.  
  4733.  
  4734.  
  4735.  
  4736.  
  4737.  
  4738.  
  4739.  
  4740.  
  4741.  
  4742.  
  4743.  
  4744.  
  4745.  
  4746.  
  4747.  
  4748.  
  4749.  
  4750.  
  4751.  
  4752.  
  4753.  
  4754.  
  4755.  
  4756.  
  4757.  
  4758.  
  4759.  
  4760.  
  4761.  
  4762.  
  4763.  
  4764.  
  4765.  
  4766.  
  4767.           Page 76                        Appendix C. Running Under DESQview
  4768.  
  4769.  
  4770.  
  4771.  
  4772.  
  4773.  
  4774.  
  4775.  
  4776.  
  4777.                                      Appendix D
  4778.  
  4779.                                    Acknowledgments
  4780.  
  4781.  
  4782.           I wish to thank Ken Doebler for allowing me to use his board, The
  4783.           Software Resource at Fido node 1:102/330, as a beta test center.
  4784.           The latest version of this program can always be found on his
  4785.           board at (213)214-2018, 2400 baud.  You can also find Unity on
  4786.           W.L.A. B.B.S at (213)838-9229 at HST speeds, though access to
  4787.           this board may be limited.
  4788.  
  4789.           Much appreciation to the beta testers who provided assistance to
  4790.           in the creation of this program:
  4791.  
  4792.                     Basil Groman
  4793.                     Michelangelo Jones
  4794.                     Cliff Klinert
  4795.                     Ken Leon
  4796.                     David McClure
  4797.                     Alex Pistyur II
  4798.                     Todd Savoie
  4799.                     William Chris Serrano
  4800.  
  4801.  
  4802.           Legal Stuff
  4803.  
  4804.           Portions Copyright Borland International, Inc.
  4805.           Portions Copyright TurboPower Software
  4806.  
  4807.  
  4808.           Products mentioned are copyright, trademarks or registered
  4809.           trademarks of their respective companies.
  4810.  
  4811.  
  4812.  
  4813.  
  4814.  
  4815.  
  4816.  
  4817.  
  4818.  
  4819.  
  4820.  
  4821.  
  4822.  
  4823.  
  4824.  
  4825.  
  4826.  
  4827.  
  4828.  
  4829.  
  4830.  
  4831.           Appendix D. Acknowledgments                               Page 77
  4832.  
  4833.  
  4834.  
  4835.  
  4836.  
  4837.  
  4838.  
  4839.  
  4840.  
  4841.  
  4842.  
  4843.  
  4844.  
  4845.  
  4846.  
  4847.  
  4848.  
  4849.  
  4850.  
  4851.  
  4852.  
  4853.  
  4854.  
  4855.  
  4856.  
  4857.  
  4858.  
  4859.  
  4860.  
  4861.  
  4862.  
  4863.  
  4864.  
  4865.  
  4866.  
  4867.  
  4868.  
  4869.  
  4870.  
  4871.  
  4872.  
  4873.  
  4874.  
  4875.  
  4876.  
  4877.  
  4878.  
  4879.  
  4880.  
  4881.  
  4882.  
  4883.  
  4884.  
  4885.  
  4886.  
  4887.  
  4888.  
  4889.  
  4890.  
  4891.  
  4892.  
  4893.  
  4894.  
  4895.           Page 78                               Appendix D. Acknowledgments
  4896.  
  4897.  
  4898.  
  4899.  
  4900.  
  4901.  
  4902.  
  4903.  
  4904.  
  4905.                                         Index
  4906.  
  4907.  
  4908.           # 63                               Bottom of Block 21
  4909.           + 61                               Bottom of Screen 20
  4910.           %% 55                              Build all 56
  4911.           %1 55, 65
  4912.           %2 55                              C
  4913.           $() 63                             Center Line 38
  4914.           %B 55, 65                          Character Left 19
  4915.           #BUILDOFF 66, 67                   Character Right 19
  4916.           #BUILDON 66                        Close All But Current Window
  4917.           %D 55                                27
  4918.           #DEFINE 66                         Close Window 29
  4919.           %E 55                              Control Character 23
  4920.           #ELSE 66                           Copy Block 31
  4921.           #ELSEIF 66                         Cursor Help 51
  4922.           #ENDIF 66
  4923.           #EXECUTE 63                        D
  4924.           %F 55                              Default Options 44
  4925.           #IFDEF 66                          Delete Block 31
  4926.           #IFNDEF 66                         Delete Character Left 23
  4927.           %L 65                              Delete Current Character 23
  4928.           %N 55, 65                          Delete Help 51
  4929.           #NOWARN 66                         Delete Line 24
  4930.           %P 55                              Delete Line (no undo) 24
  4931.           #SHELL 63                          Delete to End of Line 24
  4932.           #UNDEFINE 66                       Delete Word Left 23
  4933.           #VAR 63                            Delete Word Right 23
  4934.           #WARN 66                           Down To Equal Indent 22
  4935.           #WINDOW 63
  4936.                                              E
  4937.           A                                  Edit Another File 27
  4938.           Abandon All Files 27               Edit file 29
  4939.           Abort 59                           Edit Macro 33
  4940.           Abort Macro if Blank Line 35       End Block 31
  4941.           Abort Macro If End Of File 35      End of File 20
  4942.           Abort Macro if Out of Block 35     End of Line 20
  4943.           Activate Menus 59                  Execute 56
  4944.           Add Window 29                      Expanded memory 7, 47
  4945.           Autoindent 37                      Extended memory 7, 47
  4946.           Automatic macro execution 9        Extension 45
  4947.  
  4948.           B                                  F
  4949.           Backward Tab 49                    FERROR.EXE 69
  4950.           Basic Movement Commands 19         File Commands 27
  4951.           Begin Block 31                     File Directory 43
  4952.           Beginning of File 20               File Help 51
  4953.           Beginning of Line 20               Find 25
  4954.           Block Commands 30                  Find And Replace 25
  4955.           Block Help 51                      Find-and-Replace 25
  4956.  
  4957.  
  4958.  
  4959.           Index                                                     Page 79
  4960.  
  4961.  
  4962.  
  4963.  
  4964.  
  4965.  
  4966.           Find Next 26                       Next Error 58
  4967.           Find/Replace Help 51               Next Error File 57
  4968.           Force Autoindent Mode 37           Next Sentence 22
  4969.           Force Insert Mode 37               Next Window 29
  4970.           Force Overtype Mode 37
  4971.           Force Word Wrap On 37              O
  4972.           Format Commands 36                 Overview 7
  4973.           Function Key Help 52               Overwrite 37
  4974.  
  4975.           G                                  P
  4976.           Getting Started 8                  Page Down 19
  4977.           Go to Column 21                    Page Up 19
  4978.           Go to Line 21                      Playback 33
  4979.           Go to Window 21                    Playback Macro 1..9 33
  4980.                                              Playback Scrap 33
  4981.           H                                  Playback scrap 1..9 times 33
  4982.           Help Commands 50                   Previous Cursor Position 21
  4983.           Help Menu 51                       Previous Error 58
  4984.                                              Previous Sentence 22
  4985.           I                                  Previous Window 29
  4986.           inference rules 67                 Primary File 57
  4987.           Insert 37                          Program Help 52
  4988.           Insert And Delete 23               Programming Commands 53
  4989.           Insert Control Character 23        Programming Options 57
  4990.           Insert Line 23                     Project 53, 60
  4991.           Invoke DOS Shell 43
  4992.                                              Q
  4993.           J                                  Quick Movement Help 51
  4994.           Jump to Marker 0..9 21             Quick Reference Guide 12
  4995.           Jump To Marker By Menu 22          Quit 29
  4996.  
  4997.           L                                  R
  4998.           License Agreement 3                Read File Into Window 27
  4999.           Line Down 19                       Reformat Block 39
  5000.           Line Up 19                         Reformat Paragraph 39
  5001.           Load Macros 34                     Registration and License
  5002.           Log Drive/Path 43                    Information 2
  5003.           Lower Case 38                      Registration Information 3
  5004.                                              Repeat Macro 35
  5005.           M                                  Resize Active Window 29
  5006.           Macro Commands 33                  Restore Line 59
  5007.           Macro Help 52                      Run Tool 53
  5008.           Macro Looping Commands 35
  5009.           Make Current File Primary 57       S
  5010.           Margin Release 38                  Save All and Exit to DOS 27
  5011.           Mark Current Line 31               Save and Continue Edit 27
  5012.           Mark Current Word 31               Save Defaults 47
  5013.           Markers And Jumping 21             Save File and Close Window 27
  5014.           Miscellaneous Commands 59          Save/switch files 27
  5015.           Miscellaneous Toggles 40           Scroll Down 19
  5016.           Move Block 31                      Scroll Up 19
  5017.                                              Search And Apply Macro 26
  5018.           N                                  Select DESQview Video Mode 46
  5019.           New Line 23                        Select Video Mode 46
  5020.  
  5021.  
  5022.  
  5023.           Page 80                                                     Index
  5024.  
  5025.  
  5026.  
  5027.  
  5028.  
  5029.  
  5030.           Set Autosave Timer 57              Toggle Enhanced Keyboard 46
  5031.           Set Colors 45                      Toggle Fixed Tabs 49
  5032.           Set Default Extension 45           Toggle Hi-bit Strip 47
  5033.           Set Error Buffer Size 45           Toggle Initial Zoom 47
  5034.           Set Left Margin 38                 Toggle Insert Mode 37
  5035.           Set Marker 0..9 21                 Toggle Key Help 41
  5036.           Set Marker Via Menu 22             Toggle Macro Record 33
  5037.           Set Primary File 57                Toggle Marker Display 41
  5038.           Set Right Margin 38                Toggle Right Justify 37
  5039.           Set Support Path 45                Toggle Snow Check 45
  5040.           Set Swap Drive 47                  Toggle Tab Expansion 46
  5041.           Set Tab Size 49                    Toggle Tab Line 41
  5042.           Set Temporary Margin 38            Toggle Tab Writing 47
  5043.           Set Temporary Margin To Cursor     Toggle Word Wrap 37
  5044.             38                               Toggle XMS Usage 47
  5045.           Set Tool Options 57                Toggle Zoom Mode 29
  5046.           Set Undo Limit 45                  Top of Block 21
  5047.           Settings Help 52                   Top of Screen 20
  5048.           Shift Block Left 32
  5049.           Shift Block Right 32               U
  5050.           Show Available Memory 43           Undelete 59
  5051.           Show Help Summary 51               Undo Last Deletion 59
  5052.           Show System Info 43                Up To Equal Indent 22
  5053.           Status Help 51                     Update Screen 35
  5054.           Store Macros 34                    Upper Case 38
  5055.           Swap drive 47                      Utility Help 52
  5056.           Symbols 56
  5057.           System Commands 42                 V
  5058.                                              video device drivers 10
  5059.           T                                  Video mode 9
  5060.           Tab 49
  5061.           Tab Commands 49                    W
  5062.           Tab Help 51                        Window Commands 29
  5063.           Text Help 51                       Window Help 51
  5064.           The Editing Screen 11              Word Left 19
  5065.           Toggle Autoindent 37               Word Right 19
  5066.           Toggle Block Cursor 46             Write Block to File 27
  5067.           Toggle Block Display 31            Write to Named File 28
  5068.           Toggle Case 38
  5069.           Toggle Compress At Wrap 38         Z
  5070.           Toggle Dual Display 46             Zoom The Current Window 29
  5071.           Toggle EMS usage 47
  5072.  
  5073.  
  5074.  
  5075.  
  5076.  
  5077.  
  5078.  
  5079.  
  5080.  
  5081.  
  5082.  
  5083.  
  5084.  
  5085.  
  5086.  
  5087.           Index                                                     Page 81
  5088.  
  5089.  
  5090.  
  5091.  
  5092.  
  5093.  
  5094.  
  5095.  
  5096.  
  5097.                                     Contents
  5098.  
  5099.  
  5100.  
  5101.                Chapter 1  Registration and License Information       3
  5102.                   Registration Information . . . . . . . . . . . . . 3
  5103.                   License Agreement  . . . . . . . . . . . . . . . . 3
  5104.  
  5105.                Chapter 2  Overview                                   7
  5106.  
  5107.                Chapter 3  Getting Started                            9
  5108.  
  5109.                Chapter 4  The Editing Screen                        11
  5110.  
  5111.                Chapter 5  Quick Reference Guide                     13
  5112.  
  5113.                Chapter 6  Basic Movement Commands                   19
  5114.                   Character Left . . . . . . . . . . . . . . . . .  19
  5115.                   Character Right  . . . . . . . . . . . . . . . .  19
  5116.                   Word Left  . . . . . . . . . . . . . . . . . . .  19
  5117.                   Word Right . . . . . . . . . . . . . . . . . . .  19
  5118.                   Line Up  . . . . . . . . . . . . . . . . . . . .  19
  5119.                   Line Down  . . . . . . . . . . . . . . . . . . .  19
  5120.                   Scroll Up  . . . . . . . . . . . . . . . . . . .  19
  5121.                   Scroll Down  . . . . . . . . . . . . . . . . . .  19
  5122.                   Page Down  . . . . . . . . . . . . . . . . . . .  19
  5123.                   Page Up  . . . . . . . . . . . . . . . . . . . .  19
  5124.                   Beginning of File  . . . . . . . . . . . . . . .  20
  5125.                   End of File  . . . . . . . . . . . . . . . . . .  20
  5126.                   Beginning of Line  . . . . . . . . . . . . . . .  20
  5127.                   End of Line  . . . . . . . . . . . . . . . . . .  20
  5128.                   Top of Screen  . . . . . . . . . . . . . . . . .  20
  5129.                   Bottom of Screen . . . . . . . . . . . . . . . .  20
  5130.  
  5131.                Chapter 7  Markers And Jumping                       21
  5132.                   Go to Line . . . . . . . . . . . . . . . . . . .  21
  5133.                   Go to Column . . . . . . . . . . . . . . . . . .  21
  5134.                   Go to Window . . . . . . . . . . . . . . . . . .  21
  5135.                   Top of Block . . . . . . . . . . . . . . . . . .  21
  5136.                   Bottom of Block  . . . . . . . . . . . . . . . .  21
  5137.                   Jump to Marker 0..9  . . . . . . . . . . . . . .  21
  5138.                   Set Marker 0..9  . . . . . . . . . . . . . . . .  21
  5139.                   Previous Cursor Position . . . . . . . . . . . .  21
  5140.                   Up To Equal Indent . . . . . . . . . . . . . . .  22
  5141.                   Down To Equal Indent . . . . . . . . . . . . . .  22
  5142.                   Next Sentence  . . . . . . . . . . . . . . . . .  22
  5143.                   Previous Sentence  . . . . . . . . . . . . . . .  22
  5144.                   Set Marker Via Menu  . . . . . . . . . . . . . .  22
  5145.                   Jump To Marker By Menu . . . . . . . . . . . . .  22
  5146.  
  5147.  
  5148.  
  5149.  
  5150.  
  5151.                                           i
  5152.  
  5153.  
  5154.  
  5155.  
  5156.  
  5157.  
  5158.                Chapter 8  Insert And Delete                         23
  5159.                   New Line . . . . . . . . . . . . . . . . . . . .  23
  5160.                   Insert Line  . . . . . . . . . . . . . . . . . .  23
  5161.                   Insert Control Character . . . . . . . . . . . .  23
  5162.                   Delete Current Character . . . . . . . . . . . .  23
  5163.                   Delete Character Left  . . . . . . . . . . . . .  23
  5164.                   Delete Word Right  . . . . . . . . . . . . . . .  23
  5165.                   Delete Word Left . . . . . . . . . . . . . . . .  23
  5166.                   Delete to End of Line  . . . . . . . . . . . . .  24
  5167.                   Delete Line  . . . . . . . . . . . . . . . . . .  24
  5168.                   Delete Line (no undo)  . . . . . . . . . . . . .  24
  5169.  
  5170.                Chapter 9  Find And Replace                          25
  5171.                   Find . . . . . . . . . . . . . . . . . . . . . .  25
  5172.                   Find-and-Replace . . . . . . . . . . . . . . . .  25
  5173.                   Search And Apply Macro . . . . . . . . . . . . .  26
  5174.                   Find Next  . . . . . . . . . . . . . . . . . . .  26
  5175.  
  5176.                Chapter 10  File Commands                            27
  5177.                   Edit Another File  . . . . . . . . . . . . . . .  27
  5178.                   Abandon All Files  . . . . . . . . . . . . . . .  27
  5179.                   Read File Into Window  . . . . . . . . . . . . .  27
  5180.                   Write Block to File  . . . . . . . . . . . . . .  27
  5181.                   Save and Continue Edit . . . . . . . . . . . . .  27
  5182.                   Save File and Close Window . . . . . . . . . . .  27
  5183.                   Close All But Current Window . . . . . . . . . .  27
  5184.                   Save/switch files  . . . . . . . . . . . . . . .  27
  5185.                   Save All and Exit to DOS . . . . . . . . . . . .  27
  5186.                   Write to Named File  . . . . . . . . . . . . . .  28
  5187.  
  5188.                Chapter 11  Window Commands                          29
  5189.                   Add Window . . . . . . . . . . . . . . . . . . .  29
  5190.                   Close Window . . . . . . . . . . . . . . . . . .  29
  5191.                   Next Window  . . . . . . . . . . . . . . . . . .  29
  5192.                   Previous Window  . . . . . . . . . . . . . . . .  29
  5193.                   Resize Active Window . . . . . . . . . . . . . .  29
  5194.                   Toggle Zoom Mode . . . . . . . . . . . . . . . .  29
  5195.                   Zoom The Current Window  . . . . . . . . . . . .  29
  5196.  
  5197.                Chapter 12  Block Commands                           31
  5198.                   Begin Block  . . . . . . . . . . . . . . . . . .  31
  5199.                   End Block  . . . . . . . . . . . . . . . . . . .  31
  5200.                   Copy Block . . . . . . . . . . . . . . . . . . .  31
  5201.                   Move Block . . . . . . . . . . . . . . . . . . .  31
  5202.                   Delete Block . . . . . . . . . . . . . . . . . .  31
  5203.                   Toggle Block Display . . . . . . . . . . . . . .  31
  5204.                   Mark Current Line  . . . . . . . . . . . . . . .  31
  5205.                   Mark Current Word  . . . . . . . . . . . . . . .  31
  5206.                   Shift Block Left . . . . . . . . . . . . . . . .  32
  5207.                   Shift Block Right  . . . . . . . . . . . . . . .  32
  5208.  
  5209.                Chapter 13  Macro Commands                           33
  5210.                   Toggle Macro Record  . . . . . . . . . . . . . .  33
  5211.                   Playback Scrap . . . . . . . . . . . . . . . . .  33
  5212.  
  5213.  
  5214.  
  5215.                                          ii
  5216.  
  5217.  
  5218.  
  5219.  
  5220.  
  5221.  
  5222.                   Playback scrap 1..9 times  . . . . . . . . . . .  33
  5223.                   Playback Macro 1..9  . . . . . . . . . . . . . .  33
  5224.                   Playback . . . . . . . . . . . . . . . . . . . .  33
  5225.                   Edit Macro . . . . . . . . . . . . . . . . . . .  33
  5226.                   Load Macros  . . . . . . . . . . . . . . . . . .  34
  5227.                   Store Macros . . . . . . . . . . . . . . . . . .  34
  5228.  
  5229.                Chapter 14  Macro Looping Commands                   35
  5230.                   Repeat Macro . . . . . . . . . . . . . . . . . .  35
  5231.                   Abort Macro if Out of Block  . . . . . . . . . .  35
  5232.                   Abort Macro If End Of File . . . . . . . . . . .  35
  5233.                   Abort Macro if Blank Line  . . . . . . . . . . .  35
  5234.                   Update Screen  . . . . . . . . . . . . . . . . .  35
  5235.  
  5236.                Chapter 15  Format Commands                          37
  5237.                   Toggle Insert Mode . . . . . . . . . . . . . . .  37
  5238.                   Force Insert Mode  . . . . . . . . . . . . . . .  37
  5239.                   Force Overtype Mode  . . . . . . . . . . . . . .  37
  5240.                   Toggle Autoindent  . . . . . . . . . . . . . . .  37
  5241.                   Force Autoindent Mode  . . . . . . . . . . . . .  37
  5242.                   Toggle Word Wrap . . . . . . . . . . . . . . . .  37
  5243.                   Force Word Wrap On . . . . . . . . . . . . . . .  37
  5244.                   Toggle Right Justify . . . . . . . . . . . . . .  37
  5245.                   Toggle Compress At Wrap  . . . . . . . . . . . .  38
  5246.                   Set Left Margin  . . . . . . . . . . . . . . . .  38
  5247.                   Set Right Margin . . . . . . . . . . . . . . . .  38
  5248.                   Set Temporary Margin . . . . . . . . . . . . . .  38
  5249.                   Set Temporary Margin To Cursor . . . . . . . . .  38
  5250.                   Margin Release . . . . . . . . . . . . . . . . .  38
  5251.                   Center Line  . . . . . . . . . . . . . . . . . .  38
  5252.                   Toggle Case  . . . . . . . . . . . . . . . . . .  38
  5253.                   Lower Case . . . . . . . . . . . . . . . . . . .  38
  5254.                   Upper Case . . . . . . . . . . . . . . . . . . .  38
  5255.                   Reformat Paragraph . . . . . . . . . . . . . . .  39
  5256.                   Reformat Block . . . . . . . . . . . . . . . . .  39
  5257.  
  5258.                Chapter 16  Miscellaneous Toggles                    41
  5259.                   Toggle Tab Line  . . . . . . . . . . . . . . . .  41
  5260.                   Toggle Marker Display  . . . . . . . . . . . . .  41
  5261.                   Toggle Key Help  . . . . . . . . . . . . . . . .  41
  5262.  
  5263.                Chapter 17  System Commands                          43
  5264.                   Invoke DOS Shell . . . . . . . . . . . . . . . .  43
  5265.                   Log Drive/Path . . . . . . . . . . . . . . . . .  43
  5266.                   Show System Info . . . . . . . . . . . . . . . .  43
  5267.                   Show Available Memory  . . . . . . . . . . . . .  43
  5268.                   File Directory . . . . . . . . . . . . . . . . .  43
  5269.  
  5270.                Chapter 18  Default Options                          45
  5271.                   Set Undo Limit . . . . . . . . . . . . . . . . .  45
  5272.                   Set Error Buffer Size  . . . . . . . . . . . . .  45
  5273.                   Set Support Path . . . . . . . . . . . . . . . .  45
  5274.                   Set Default Extension  . . . . . . . . . . . . .  45
  5275.                   Set Colors . . . . . . . . . . . . . . . . . . .  45
  5276.  
  5277.  
  5278.  
  5279.                                          iii
  5280.  
  5281.  
  5282.  
  5283.  
  5284.  
  5285.  
  5286.                   Toggle Snow Check  . . . . . . . . . . . . . . .  45
  5287.                   Toggle Block Cursor  . . . . . . . . . . . . . .  46
  5288.                   Select Video Mode  . . . . . . . . . . . . . . .  46
  5289.                   Select DESQview Video Mode . . . . . . . . . . .  46
  5290.                   Toggle Enhanced Keyboard . . . . . . . . . . . .  46
  5291.                   Toggle Dual Display  . . . . . . . . . . . . . .  46
  5292.                   Toggle Tab Expansion . . . . . . . . . . . . . .  46
  5293.                   Toggle Tab Writing . . . . . . . . . . . . . . .  47
  5294.                   Toggle Hi-bit Strip  . . . . . . . . . . . . . .  47
  5295.                   Toggle Initial Zoom  . . . . . . . . . . . . . .  47
  5296.                   Toggle EMS usage . . . . . . . . . . . . . . . .  47
  5297.                   Toggle XMS Usage . . . . . . . . . . . . . . . .  47
  5298.                   Set Swap Drive . . . . . . . . . . . . . . . . .  47
  5299.                   Save Defaults  . . . . . . . . . . . . . . . . .  47
  5300.  
  5301.                Chapter 19  Tab Commands                             49
  5302.                   Tab  . . . . . . . . . . . . . . . . . . . . . .  49
  5303.                   Backward Tab . . . . . . . . . . . . . . . . . .  49
  5304.                   Toggle Fixed Tabs  . . . . . . . . . . . . . . .  49
  5305.                   Set Tab Size . . . . . . . . . . . . . . . . . .  49
  5306.  
  5307.                Chapter 20  Help Commands                            51
  5308.                   Help Menu  . . . . . . . . . . . . . . . . . . .  51
  5309.                   Show Help Summary  . . . . . . . . . . . . . . .  51
  5310.                   Status Help  . . . . . . . . . . . . . . . . . .  51
  5311.                   Cursor Help  . . . . . . . . . . . . . . . . . .  51
  5312.                   Quick Movement Help  . . . . . . . . . . . . . .  51
  5313.                   Delete Help  . . . . . . . . . . . . . . . . . .  51
  5314.                   Find/Replace Help  . . . . . . . . . . . . . . .  51
  5315.                   File Help  . . . . . . . . . . . . . . . . . . .  51
  5316.                   Window Help  . . . . . . . . . . . . . . . . . .  51
  5317.                   Block Help . . . . . . . . . . . . . . . . . . .  51
  5318.                   Text Help  . . . . . . . . . . . . . . . . . . .  51
  5319.                   Tab Help . . . . . . . . . . . . . . . . . . . .  51
  5320.                   Utility Help . . . . . . . . . . . . . . . . . .  52
  5321.                   Settings Help  . . . . . . . . . . . . . . . . .  52
  5322.                   Program Help . . . . . . . . . . . . . . . . . .  52
  5323.                   Macro Help . . . . . . . . . . . . . . . . . . .  52
  5324.                   Function Key Help  . . . . . . . . . . . . . . .  52
  5325.  
  5326.                Chapter 21  Programming Commands                     53
  5327.                   Project  . . . . . . . . . . . . . . . . . . . .  53
  5328.                   Run Tool . . . . . . . . . . . . . . . . . . . .  53
  5329.                   Execute  . . . . . . . . . . . . . . . . . . . .  56
  5330.                   Build all  . . . . . . . . . . . . . . . . . . .  56
  5331.                   Symbols  . . . . . . . . . . . . . . . . . . . .  56
  5332.  
  5333.                Chapter 22  Programming Options                      57
  5334.                   Set Tool Options . . . . . . . . . . . . . . . .  57
  5335.                   Set Autosave Timer . . . . . . . . . . . . . . .  57
  5336.                   Set Primary File . . . . . . . . . . . . . . . .  57
  5337.                   Make Current File Primary  . . . . . . . . . . .  57
  5338.                   Next Error File  . . . . . . . . . . . . . . . .  57
  5339.                   Next Error . . . . . . . . . . . . . . . . . . .  58
  5340.  
  5341.  
  5342.  
  5343.                                          iv
  5344.  
  5345.  
  5346.  
  5347.  
  5348.  
  5349.  
  5350.                   Previous Error . . . . . . . . . . . . . . . . .  58
  5351.  
  5352.                Chapter 23  Miscellaneous Commands                   59
  5353.                   Activate Menus . . . . . . . . . . . . . . . . .  59
  5354.                   Abort  . . . . . . . . . . . . . . . . . . . . .  59
  5355.                   Undo Last Deletion . . . . . . . . . . . . . . .  59
  5356.                   Restore Line . . . . . . . . . . . . . . . . . .  59
  5357.  
  5358.                Chapter 24  Project                                  61
  5359.                   24.1  Project File Commands  . . . . . . . . . .  63
  5360.                   #  . . . . . . . . . . . . . . . . . . . . . . .  63
  5361.                   #EXECUTE . . . . . . . . . . . . . . . . . . . .  63
  5362.                   #SHELL . . . . . . . . . . . . . . . . . . . . .  63
  5363.                   #WINDOW  . . . . . . . . . . . . . . . . . . . .  63
  5364.                   #VAR . . . . . . . . . . . . . . . . . . . . . .  63
  5365.                   #DEFINE  . . . . . . . . . . . . . . . . . . . .  66
  5366.                   #UNDEFINE  . . . . . . . . . . . . . . . . . . .  66
  5367.                   #IFDEF . . . . . . . . . . . . . . . . . . . . .  66
  5368.                   #IFNDEF  . . . . . . . . . . . . . . . . . . . .  66
  5369.                   #ELSE  . . . . . . . . . . . . . . . . . . . . .  66
  5370.                   #ELSEIF  . . . . . . . . . . . . . . . . . . . .  66
  5371.                   #ENDIF . . . . . . . . . . . . . . . . . . . . .  66
  5372.                   #NOWARN  . . . . . . . . . . . . . . . . . . . .  66
  5373.                   #WARN  . . . . . . . . . . . . . . . . . . . . .  66
  5374.                   #BUILDON . . . . . . . . . . . . . . . . . . . .  66
  5375.                   #BUILDOFF  . . . . . . . . . . . . . . . . . . .  67
  5376.                   24.2  Inference Rules  . . . . . . . . . . . . .  67
  5377.  
  5378.                Appendix A  Creating Custom Error Filters            69
  5379.  
  5380.                Appendix B  Customizing The Help File                73
  5381.  
  5382.                Appendix C  Running Under DESQview                   75
  5383.  
  5384.                Appendix D  Acknowledgments                          77
  5385.                         Legal Stuff  . . . . . . . . . . . . . . .  77
  5386.  
  5387.                Index                                                79
  5388.  
  5389.  
  5390.  
  5391.  
  5392.  
  5393.  
  5394.  
  5395.  
  5396.  
  5397.  
  5398.  
  5399.  
  5400.  
  5401.  
  5402.  
  5403.  
  5404.  
  5405.  
  5406.  
  5407.                                           v
  5408.